Developers
Shosho is built on Nostr — your code can interoperate with Nostr in the same way Shosho does, and can use Nostr keys to authenticate into Shosho API endpoints. This reference covers identity, going live, chat, clips, products, custom emoji, the Show Chat API, and media uploads.
What you can build
- Create or use Nostr profiles.
- Get streaming credentials, create and publish live stream events to Shosho and Nostr.
- Go live via Show Chat — Shosho signs, publishes, and monitors the live event for you.
- Create and publish video clips to Shosho and Nostr.
- Create and publish products for sale on Shosho and Nostr as Classified products.
- Comment on live streams and clips as an audience member.
- Create and publish a live stream.
- Create and publish custom emoji sets.
- Much more.
Channels
Shosho exposes functionality through three channels:
- Shosho Streaming API —
https://api.shosho.live/api/v1. The Shosho instance of Zap Stream Server. Streaming operations: account info, stream keys, going live. (Uses NIP-98 auth). - Shosho Show Chat API —
https://shosho.live/api/show-chat. Live stream event publishing to Nostr. Shosho signs and publishes kind 30311 events for the user. (Uses NIP-98 auth). - Nostr Protocol — reading and publishing events to Nostr relays for profiles, stream discovery, chat, clips, products, and social.
Supported Nostr NIPs
Nostr defines functionality in the Nostr NIPs .
Shosho supports the following Nostr functionality.
| NIP | Purpose | Kinds |
|---|---|---|
| NIP-01 | Basic protocol, event signing | All |
| NIP-02 | Contacts / follow list | 3 |
| NIP-05 | DNS-based identifiers | — |
| NIP-07 | Browser-extension signer | — |
| NIP-09 | Event deletion requests | 5 |
| NIP-19 | Bech32 encoding (npub, nsec, naddr) | — |
| NIP-22 | Comments (clip comments) | 1111 |
| NIP-25 | Reactions | 7 |
| NIP-30 | Custom emoji | 10030, 30030 |
| NIP-46 | Remote signer (Nostr Connect) | — |
| NIP-51 | Lists (mute list, follow packs) | 10000, 39089 |
| NIP-53 | Live events, chat, room presence | 30311, 1311, 10312 |
| NIP-57 | Zaps (read) | 9734, 9735 |
| NIP-65 | Relay list metadata | 10002 |
| NIP-71 | Video events (clips) | 21, 22, 34235, 34236 |
| NIP-96 | File storage (media uploads) | — |
| NIP-98 | HTTP auth | 27235 |
| NIP-99 | Classified listings (products) | 30402 |
Nostr relays
Shosho queries these relays when fetching data (profiles, streams, clips, products):
wss://purplepag.es— always included in profile queries (excellent profile data, doesn’t accept user notes)wss://relay.shosho.live– Shosho’s Web Of Trust (WOT) relaywss://relay.damus.iowss://nostrelites.orgwss://nostr.wine
For guest users with no relay list, Shosho publishes to:
wss://relay.damus.iowss://relay.primal.net
For a logged-in user who has published a relay list (kind 10002) Shosho uses those write relays instead of the defaults.
For a live stream viewer, Shosho also uses the stream event’s host’s relays so that the live stream host can see the chat messages.
Tools
- NAK — Nostr Army Knife CLI.
go install github.com/fiatjaf/nak@latest - nostr-tools — JS/TS library.
npm install nostr-tools
Several Shosho APIs require NIP-98 authentication — auth tokens are signed Nostr events. The examples in this reference use curl for the HTTP call, but any HTTP client works once you have the token.
Where to start
- Quick start — order of operations end-to-end.
- Nostr identity — get or create a keypair.
- NIP-98 HTTP authentication — needed for several Shosho APIs.