Utviklere
Stream Sky API · versjon 1 · oppdatert 18. august 2026
Alt du kan gjøre fra «Min side» kan du også gjøre med HTTP. Du henter status på strømmen din, bytter strømnøkler, styrer videresending og «straks tilbake», setter grensene for automatisk scenebytte, og starter eller stopper OBS-boksen din — fra dine egne skript, fra en bot, eller fra et kontrollpanel du bygger selv.
Base-URL: https://panel.streamsky.no/api/v1
Autentisering: Authorization: Bearer <nøkkelen din>
Format: JSON inn og JSON ut (Content-Type: application/json)
Lag en nøkkel: logg inn på streamsky.no → Min side → Utviklere
- 1. Kom i gang
- 2. Tilgangsnivå
- 3. Feilkoder
- 4. Strømmene dine
- 5. Videresending
- 6. «Straks tilbake» og scenebytte
- 7. OBS-boksene dine
- 8. Publiseringsadressene
- 9. Grenser og god skikk
1. Kom i gang
Nøkler lager du selv under Min side → Utviklere. Du gir nøkkelen en etikett du kjenner igjen, velger tilgangsnivå, og får se selve verdien én eneste gang. Vi lagrer aldri verdien i klartekst, så mister du den, lager du bare en ny og tilbakekaller den gamle.
Nøkkelen er knyttet til kontoen din. Du ser og styrer bare dine egne strømmer og bokser — du trenger aldri oppgi hvem du er i forespørselen, for det vet vi allerede.
Første kall, for å se hva du har:
curl -s https://panel.streamsky.no/api/v1/streams \
-H "Authorization: Bearer $STREAMSKY_KEY"
Svaret ser slik ut (med et lesenivå-tilgangsnivå, altså uten publiseringsdetaljer):
{
"streams": [
{
"name": "ss-1234",
"label": "IRL-linja mi",
"owner": "deg@example.no",
"plan": "active",
"status": "active",
"expiresAt": null,
"live": true,
"urls": { "srtHost": "srt.streamsky.no", "srtPort": "8890", "srtlaPort": "5050" }
}
]
}
💡 Legg nøkkelen i en miljøvariabel i stedet for rett i skriptet
(export STREAMSKY_KEY=…). Da havner den ikke i kommandohistorikken din, og ikke i
et skript du senere deler.
2. Tilgangsnivå
En nøkkel har ett eller begge av to tilgangsnivåer. Velg alltid det laveste som holder: har boten din bare behov for å vise bitrate i en chat, skal den ikke kunne bytte nøklene dine.
| Nivå | Gir deg |
|---|---|
read |
Lesing: liste strømmer og bokser, hente helse, se videresendinger, lese innstillingene for automatisk scenebytte og overlays. Publiseringsdetaljene dine returneres ikke — du får verten og portene, ikke lenkene som inneholder nøkkelen din. |
write |
Alt read gir, pluss endring: bytte strømnøkler, legge til / endre / slette
videresendinger, slå «straks tilbake» av og på, endre scenebytte, styre boksen og laste
inn overlays og OBS-oppsett.
Bare write får se publiseringslenkene med nøkkelen din i. |
Mangler nøkkelen nivået et kall krever, svarer vi 403 — vi utfører aldri halve
operasjonen.
3. Feilkoder
Alle feil kommer som JSON med et error-felt du kan vise videre til deg selv eller
brukerne dine. Statuskoden er den som forteller deg hva du skal gjøre.
| Kode | Betyr | Hva du gjør |
|---|---|---|
400 | Forespørselen mangler eller har ugyldige felter. | Les error — den sier hvilket felt det gjelder. |
401 | Nøkkelen mangler, er skrevet feil, eller er tilbakekalt. | Sjekk Authorization-headeren. Er nøkkelen slettet, lag en ny. |
403 | Nøkkelen mangler tilgangsnivået — eller funksjonen krever et produkt du ikke har. | Lag en nøkkel med write, eller les error: noen funksjoner krever både SRT-linje og OBS-boks. |
404 | Finnes ikke på kontoen din. | Hent lista på nytt. Vi svarer likt enten navnet ikke finnes eller tilhører noen andre — med vilje. |
409 | Kolliderer med noe som allerede er der. | Du har nådd taket for videresendinger eller overlays, eller boksen må startes først. |
423 | Abonnementet er ikke aktivt akkurat nå. | Gjenoppta abonnementet i portalen. Å slå av en videresending går alltid. |
429 | For mange kall på kort tid. | Vent litt og prøv igjen. Se grensene. |
4. Strømmene dine
Plassholdere i stiene skrives med kolon: :navn er navnet på strømmen slik det står
i name-feltet, og :id er referansen på en videresending eller en boks.
| Kall | Nivå | Gjør |
|---|---|---|
GET /streams | read | Lister alle strømmene dine. |
GET /streams/:navn | read | Én strøm. |
GET /streams/:navn/health | read | Live-status: om du er på lufta, oppetid, spor, antall seere, mottatte byte, bitrate, forsinkelse og pakketap. |
POST /streams/:navn/rotate | write | Bytter publiserings- og avspillingsnøklene. Se advarselen under. |
Helse
curl -s https://panel.streamsky.no/api/v1/streams/ss-1234/health \
-H "Authorization: Bearer $STREAMSKY_KEY"
{
"ok": true,
"live": true,
"uptimeSince": "2026-08-18T09:41:12Z",
"readers": 2,
"bytesReceived": 184320512,
"health": { "rttMs": 34, "mbpsIn": 5.8, "lossPct": 0.02 },
"brb": false,
"status": "active",
"destinations": []
}
Vi returnerer bytesReceived rått i stedet for en ferdig utregnet bitrate: poller du
med jevne mellomrom, regner du differansen selv og slipper å holde en åpen forbindelse mot oss.
Bytt strømnøkler
curl -s -X POST https://panel.streamsky.no/api/v1/streams/ss-1234/rotate \
-H "Authorization: Bearer $STREAMSKY_KEY"
Dette bryter en pågående sending. De gamle lenkene slutter å virke
med én gang, og du må lime inn den nye i OBS eller BELABOX før du kan gå live igjen. Har du en
OBS-boks koblet til strømmen, oppdaterer vi den automatisk — feltet boxUpdated i
svaret sier hvilken. Sender du akkurat nå, får du 423 hvis abonnementet ikke er
aktivt; ellers får du de nye lenkene i svaret.
5. Videresending
En videresending er en kopi av strømmen din ut til Twitch, YouTube, Facebook, Kick eller din
egen RTMP-adresse. Videresending krever at du også har en OBS-boks — får du 403
med needsBox: true, er det derfor.
| Kall | Nivå | Gjør |
|---|---|---|
GET /streams/:navn/destinations | read | Lister målene dine, taket ditt, hvor mange som er aktive, og hvilke plattformer som finnes. |
POST /streams/:navn/destinations | write | Legger til et mål. |
PATCH /streams/:navn/destinations/:id | write | Endrer et mål, eller slår det av og på. |
DELETE /streams/:navn/destinations/:id | write | Fjerner et mål. |
curl -s -X POST https://panel.streamsky.no/api/v1/streams/ss-1234/destinations \
-H "Authorization: Bearer $STREAMSKY_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"twitch","label":"Twitch","key":"live_xxxxxxxx","enabled":true}'
Bruk platform: "custom" hvis du sender til din egen adresse; da oppgir du
url selv. Vi tar bare imot rtmp:// og rtmps://.
Når du leser målene tilbake er adressen maskert — du ser nok til å kjenne igjen målet
ditt, ikke nok til at noen kan bruke det. Sender du key som tom streng i en
PATCH, betyr det «ikke endre nøkkelen».
Taket gjelder båndbredde, så det er de påskrudde målene som telles. Går du over, får du
409 med teksten som sier hvor mange du kan ha.
6. «Straks tilbake» og scenebytte
| Kall | Nivå | Gjør |
|---|---|---|
PATCH /streams/:navn/brb | write | {"on": true} holder kanalene dine i live med en pauseskjerm når signalet ryker. |
GET /streams/:navn/switcher | read | Leser innstillingene for automatisk scenebytte, og om en boks er paret med strømmen. |
PATCH /streams/:navn/switcher | write | Setter grensene. Justerer vi en verdi du sendte, får du det tilbake i feltet justert. |
curl -s -X PATCH https://panel.streamsky.no/api/v1/streams/ss-1234/brb \
-H "Authorization: Bearer $STREAMSKY_KEY" \
-H "Content-Type: application/json" \
-d '{"on":true}'
Begge funksjonene krever både SRT-linje og OBS-boks: linja måler signalet, boksen bytter scene.
Uten begge svarer vi 403 med en forklaring i error.
7. OBS-boksene dine
| Kall | Nivå | Gjør |
|---|---|---|
GET /streamboxes | read | Lister boksene dine med status, hvilken strøm de er paret med, og når abonnementet utløper. |
POST /streamboxes/:id/power | write | {"action": "start" \| "stop" \| "reboot"} |
GET /streamboxes/:id/overlay | read | Lister overlay-kildene som ligger i OBS akkurat nå. |
POST /streamboxes/:id/overlay | write | Legger inn en overlay-lenke som nettleserkilde: {"url": "...", "navn": "Chat"} |
DELETE /streamboxes/:id/overlay | write | Fjerner et overlay: {"navn": "Chat"} |
POST /streamboxes/:id/obs-import | write | Laster inn din egen scenesamling: {"content": "<innholdet i JSON-fila>"} |
curl -s -X POST https://panel.streamsky.no/api/v1/streamboxes/$BOKS/power \
-H "Authorization: Bearer $STREAMSKY_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"start"}'
Boksen må være startet for å ta imot overlays eller et OBS-oppsett — ellers svarer vi
409. Overlay-lenken må være https:// og peke ut på internett; vi tar
ikke imot adresser som peker innover i nettverket.
Til obs-import bruker du fila fra OBS → Scenesamling → Eksporter (ikke
Profil → Eksporter — det er den forvekslingen folk gjør). Vi rører aldri profilen din, så
SRT-lenka i boksen står som den står. Maks 1 MB.
8. Publiseringsadressene
Selve videoen sendes ikke gjennom API-et. Den går på UDP til:
| Bruk | Adresse |
|---|---|
| SRTLA-bonding (flere mobilnett samtidig) | srt.streamsky.no:5050 |
| Vanlig SRT — publisering og avspilling | srt.streamsky.no:8890 |
De ferdige lenkene henter du med en write-nøkkel — de kommer i urls
på strømmen din, som srtla, srtPublish og srtPlay.
Formen er slik, der streamid bærer navnet på strømmen og publiseringsdetaljen din:
srt://srt.streamsky.no:8890?streamid=publish:<strøm>:<bruker>:<hemmelighet>
⚠️ Disse lenkene må aldri deles
Publiseringslenka inneholder din egen hemmelighet. Den som har den, kan sende video ut på kanalene dine som om det var deg. Avspillingslenka lar hvem som helst se sendingen din.
Derfor: aldri i et skjermbilde, aldri på strøm, aldri i en offentlig chat, aldri i et kodelager. Dette er den vanligste måten en IRL-streamer mister kontrollen på — lenka blir stående synlig i OBS-vinduet mens sendingen går.
Har det først skjedd: kjør POST /streams/:navn/rotate med én gang, eller trykk
Bytt nøkler i portalen. De gamle lenkene dør i samme sekund.
9. Grenser og god skikk
- Rundt 120 kall i minuttet per nøkkel. Over det svarer vi
429. Trenger du mer, si fra — da finner vi ut av det sammen. - Poll fornuftig. Hvert 5. sekund er rikelig for helse; portalen vår gjør det samme, og slutter å spørre når fanen ligger i bakgrunnen.
- Én nøkkel per ting. Har boten din og overvåkingsskriptet ditt hver sin nøkkel, kan du tilbakekalle den ene uten å ta ned den andre.
- Vi logger bruken av hver nøkkel — antall kall, avviste forsøk og når den sist ble brukt. Det ser du selv under Min side → Utviklere. Ser vi et mønster som tyder på misbruk, varsles vi, og vi kan slå av nøkkelen. Blir en nøkkel slått av av oss, står det der.
- Tilbakekall er umiddelbart. Sletter du en nøkkel, svarer neste kall
401.
Trenger du hjelp?
Står du fast, eller mangler du et endepunkt for noe du prøver å få til — åpne en supportsak, så svarer vi. Du kan også bruke kontaktskjemaet.
Del aldri nøkkelen din eller en publiseringslenke i en supportsak. Vi trenger dem ikke — de første tegnene i nøkkelen holder for at vi finner den igjen.
← Tilbake til Stream Sky