Stackness
Sign up

REST API documentation

Every public Stackness route, 173 endpoints in 22 sections, from authentication and stacks to moves, feeds and discovery.

Base URL

https://stackness.dev/api/v1

All endpoint paths below are relative to this base URL.

Authentication

Stackness supports two authentication methods:

JWT bearer token

Obtain a token via POST /auth/login or POST /auth/register. Pass it in the Authorization header:

Authorization: Bearer eyJhbGciOiJI...
API key

Create an API key (prefixed with sfk_) via the API keys endpoints or in settings. Pass it in the Authorization header:

Authorization: Bearer sfk_abc123...

OAuth flows (GitHub, Google) are also available - see the authentication section below for redirect-based endpoints.

Pagination

List endpoints use cursor-based pagination. Pass cursor and limit as query parameters.

GET /api/v1/tools?limit=20&cursor=abc123

{
  "tools": [...],
  "next_cursor": "def456",
  "has_more": true
}

When has_more is false, you have reached the end of the list.

Error format

All errors return a JSON object with error and code fields:

{
  "error": "resource not found",
  "code": "NOT_FOUND"
}

Common HTTP status codes:
  400 - Bad Request (validation error)
  401 - Unauthorized (missing or invalid token)
  403 - Forbidden (insufficient permissions)
  404 - Not Found
  409 - Conflict (duplicate resource)
  429 - Too Many Requests (rate limited)
  500 - Internal Server Error

Rate limits

TierLimitScope
Public endpoints900 req/minPer IP address
Authenticated endpoints600 req/minPer user
Auth endpoints (login, register)10 req/minPer IP address
Session endpoints (refresh, logout)60 req/minPer IP address

When rate limited, the API returns HTTP 429 with a Retry-After header.

Authentication

13

Register, log in, refresh tokens, and authenticate via OAuth providers.

API keys

3

Create and manage API keys for programmatic access and MCP server authentication.

Users & profiles

10

View and update user profiles, get followers/following lists, OG images, and QR codes.

Follow system

4

Follow and unfollow users, and check follow status.

Tools & categories

15

Browse the tool database, search for tools, view usage stats, and submit new tools. Wherever a tool object carries `logo_url`, it can also carry `logo_dark_url`: a light variant of a logo that would vanish on a dark background, meant for dark themes. It is omitted when the logo reads fine on dark as it is.

Stack management

23

Add, update and remove the tools in your stack, and read public stacks and their history.

Moves

8

Create and manage moves - techniques, workflows, and approaches for how you use your stack.

Saved items

5

Manage your bookmarks: save tools and moves for later, track their status as you evaluate them, and keep short notes.

Comments

4

Comment on stack tools, moves, stack updates, blog posts and games, with one level of threaded replies.

Reactions

4

React to stack tools, moves, stack updates, and blog posts with a fixed emoji set.

Feed

3

Read the chronological feed of people you follow, the global updates feed, and per-user and per-tool feeds.

Notifications

4

Read the authenticated user's notifications and mark them as read, one at a time or all at once.

Organizations

29

Create and manage private organizations: their members, teams and invitations, and billing through Stripe. Every route under /api/v1/orgs/{slug} is for members only. A non-member and a missing organization get the same 404 with the body {"error":"organization not found","code":"NOT_FOUND"}, so a response never confirms that an organization exists. A member without the required role gets 403 FORBIDDEN.

Achievements

9

Achievements, the daily streak and the games they unlock. Every route here answers 404 to everyone but admins while GET /api/v1/features reports achievements as false.

Settings

12

Manage notification preferences, privacy and blocked users, connected OAuth accounts, and account lifecycle: deletion, restore, and data export.

Uploads

2

Upload avatar and content images to Stackness storage and get back a CDN URL.

Blog

6

Read published Stackness blog posts. Every post carries one category: update, announcement, trend, knowledge (evergreen explainers and guides) or report (the quarterly data reports). A post with a downloadable dataset carries dataset_url, an absolute https link to a CSV; posts without one omit the field.

Billing

5

Read the supporter price, check a subscription, and open Stripe checkout or the customer portal.

Feedback and reports

2

Send feedback to the founder and report content or users for moderation.

System

4

Identify the build the API is running, read the launch switches, opt out of bulk email, and turn on the daily summary.

To connect an AI assistant instead, follow the MCP server documentation.