Rising Tide Developers
API

Catalog and Reference Data

Product types, apps, tags, causes, domain routes for events and tournaments, and the small lookup endpoints.

Mostly reads, mostly cacheable. The catalog endpoints describe what the protocol offers; the lookup endpoints return small enumerations your UI needs at render time.

One of these is load-bearing rather than incidental: /api/apps/{id}/config is the single source of truth for whether signup requires an invite. Read it rather than mirroring the answer into your own environment, which is how the two get out of sync.

Product types and apps

MethodPathAuthPurpose
GET/api/product-typesapp keyThe product type catalog.
POST/api/product-typesapp key + user, entitlementCreate a product type. Needs MANAGE_PRODUCT_TYPES.
DELETE/api/product-types/{slug}app key + user, entitlementDelete one. Needs MANAGE_PRODUCT_TYPES.
GET/api/product-types/{slug}app keyOne product type.
PATCH/api/product-types/{slug}app key + user, entitlementUpdate one. Needs MANAGE_PRODUCT_TYPES.
GET/api/appsapp keyThe app catalog: active apps by default (activeOnly=false for all), with publicOnly, layer (protocol or client) and contentType filters. Each row carries accessPolicy and catalogTease.
POST/api/appsapp key + user, entitlementRegister an app. Operator route: needs MANAGE_ACCOUNTS.
DELETE/api/apps/{id}app key + user, entitlementDelete an app. Needs MANAGE_ACCOUNTS.
GET/api/apps/{id}app key + user, entitlementOne app, the full record. Needs MANAGE_ACCOUNTS; a client app reads /config and /access instead.
PUT/api/apps/{id}app key + user, entitlementUpdate an app. Needs MANAGE_ACCOUNTS.
GET/api/apps/{id}/configapp keyClient-visible config: requireInviteForSignup, isPublic, byowEnabled, mode, acceptedCurrencies and createFeeMicro (a decimal string, in microSTX). This is the single source of truth for the invite gate and for what creating costs - do not mirror either in your own env.
GET/api/apps/{id}/accessapp key, user optionalThe entry-gate read: { appId, accessPolicy, hasAccess, reason }. A PUBLIC app answers hasAccess: true. For a GRANTED app, reason is UNAUTHENTICATED without a session token and NO_GRANT for a signed-in user with no active grant, and null when access is held. 404 for an unknown or inactive app. This is the read the entry curtain asks, and never the catalog.
GET/api/apps/{id}/statsuser, entitlementAggregate counters for an app. Operator read: needs VIEW_ADMIN_PANEL.
GET/api/apps/{id}/trendingapp keyTrending products in an app by recent edition velocity. window is 7d (default) or 30d; limit is 1-25, default 10.
GET/api/apps/{id}/randomapp keyA random sample of published page products from an app, each with its feedback notes: count is 1-50 (default 1), excludeOwned names an address to skip. Never cached, since a cached random is not random.

Discovery

MethodPathAuthPurpose
GET/api/tagsapp keyList tags.
GET/api/tags/{id}app keyOne tag.
GET/api/tags/popularapp keyMost-used tags.
GET/api/protocol-statsapp keyProtocol-wide aggregate counters.
GET/api/activity/summaryapp keyWhat happened in a window, across apps: { window, published, collected, hottest }. published and collected are { total, byApp: [{ sourceAppId, count }] }; hottest ranks products by editions collected in the window, in the same row shape as /api/apps/{id}/trending. The window is window (24h default, 7d, 30d) or since, an ISO time within the last 31 days, for a day that starts at a reader's own midnight. appIds (comma-separated) limits every count to those apps; limit is 1-25, default 10. Counts only, never amounts.
GET/api/fees/estimateapp keyEstimate the fee for an operation before you build the transaction.
GET/apipublicService root.

Causes

MethodPathAuthPurpose
GET/api/funding-groupsapp keyApproved causes a creator can route revenue to.
POST/api/funding-groupsapp key + user, entitlementRegister a funding group. Needs MANAGE_FUNDING_GROUPS.
DELETE/api/funding-groups/{id}app key + user, entitlementDelete one. Needs MANAGE_FUNDING_GROUPS.
GET/api/funding-groups/{id}app keyOne funding group.
PUT/api/funding-groups/{id}app key + user, entitlementUpdate one. Needs MANAGE_FUNDING_GROUPS.
GET/api/funding-groups/{id}/contributionsapp keyContribution rows routing to this cause.
GET/api/funding-groups/address/{stxAddress}app keyResolve a funding group by payout address.

Domain routes

MethodPathAuthPurpose
GET/api/eventsapp keyList events.
POST/api/eventsapp key + user, entitlement, app accessCreate an event. Needs CREATE_EVENTS.
DELETE/api/events/{id}app key + userDelete an event.
GET/api/events/{id}app keyOne event.
PATCH/api/events/{id}app key + userPartial update.
PUT/api/events/{id}app key + userSame handler as PATCH.
GET/api/locationsapp keyList locations.
POST/api/locationsapp key + user, entitlementCreate a location. Needs CREATE_EVENTS.
GET/api/bracketsapp keyList tournaments.
POST/api/bracketsapp key + user, entitlement, app accessCreate a tournament. Needs CREATE_BRACKETS.
DELETE/api/brackets/{id}app key + userDelete a tournament.
GET/api/brackets/{id}app keyOne tournament.
PATCH/api/brackets/{id}app key + userUpdate a tournament.
GET/api/brackets/{id}/entriesapp keySubmitted entries.
GET/api/brackets/{id}/entries/{entryId}app keyOne entry.
GET/api/brackets/{id}/leaderboardapp keyStandings.
GET/api/brackets/{id}/rounds/{round}/tallyapp keyOne round of a tournament settled by a count: plays, winners, and whether the count is final.

Lookups

MethodPathAuthPurpose
GET/api/currency-typesapp keyAccepted currencies and their decimals.
GET/api/event-typesapp keyEvent type catalog.
GET/api/entitlementsuser, entitlementThe entitlement catalog. Needs MANAGE_ROLES.
GET/api/rolesapp keyThe role catalog.
POST/api/rolesapp key + user, entitlementCreate a role. Needs MANAGE_ROLES.
DELETE/api/roles/{id}app key + user, entitlementDelete a role. Needs MANAGE_ROLES.
GET/api/roles/{id}app keyOne role.
PUT/api/roles/{id}app key + user, entitlementUpdate a role. Needs MANAGE_ROLES.
GET/api/link-typesapp keySocial link types.
POST/api/link-typesapp key + user, entitlementCreate a link type. Needs MANAGE_ACCOUNTS.
DELETE/api/link-types/{id}app key + user, entitlementDelete one. Needs MANAGE_ACCOUNTS.
GET/api/link-types/{id}app keyOne link type.
PUT/api/link-types/{id}app key + user, entitlementUpdate one. Needs MANAGE_ACCOUNTS.

Assets and storage

MethodPathAuthPurpose
POST/api/uploadapp key + userUpload an asset.
GET/api/arweave/tx/{txId}/statuspublicPermanent-storage transaction status, cached; a proxy to the gateway with the exposure bounded by the cache.