REST-API · OpenAPI 3.1 · MCP-Server

Entwickler-API

Wandle Dateien, Links und Texte in Akkorde und Songtexte um und lies oder fülle dein Liederbuch per Skript oder Assistent.

  • Kostenlose Stufe
  • Dieselbe Engine wie die App
  • Offizieller MCP-Server
Basis-URL https://jam-jam.org/api/v1 openapi.json llms.txt

Was die API kann

Jede Fähigkeit wird durch einen Scope freigeschaltet, den du beim Erstellen deines Schlüssels ankreuzt.

Konvertierung

Audio, PDF, Bilder, Text oder ein Link zu Songbook, PDF, MIDI, MusicXML und mehr.

convert:writeconvert:read

Privates Liederbuch

Deine Songs und Playlists auflisten, lesen, anlegen, bearbeiten und ordnen.

carnet:readcarnet:write

Öffentliche Profile

Nur Lesen: Profile, veröffentlichte Songs, Follower. Keine Tonspur.

social:read

Spurentrennung

Eine Konvertierung (output=stems) trennt Gesang und Begleitung; das Werkzeug /stem-tool trennt in zwei oder vier Spuren. Mit einem API-Schlüssel verlangen beide ein Premium-Konto.

stems:write Premium-API-Schlüssel

Audio-Warteschlange

Akkord- und Textanalyse in derselben Warteschlange wie die App.

audio:writequeue:read

KI-Musikerkennung

Ein Hinweis auf KI-Erzeugung für eine Datei, einen Spotify-Link, einen direkten Audio-Link oder einen ISRC.

Grenzen, Kontingente und Datenschutz

KI-generierte Musik ist immer häufiger. Jam Jam hilft dir, Hinweise auf eine Generierung zu finden: Link einfügen oder Datei hochladen und eine unverbindliche Einschätzung erhalten.

Max. 100 MB · Max. 10 Min. · Spotify, direkter Audio-Link oder ISRC. YouTube wird nicht unterstützt. Spotify-Links können nur anhand einer Hörprobe analysiert werden.

Eine wartende oder laufende Datei pro Konto. Premium-Konten haben Vorrang in der Warteschlange.

Gast: 2 Scans/Tag und 5/Monat. Kostenloses Konto: 5/Tag und 50/Monat. Premium: 30/Tag und 300/Monat. Gemeinsame Limits für Website, App und API; fehlgeschlagene Scans zählen nicht. Zurücksetzung um Mitternacht UTC und am Monatsersten UTC.

Audio wird zur Analyse an unseren Anbieter SH Labs gesendet. Laut Anbieter wird es weder aufbewahrt noch zum Modelltraining verwendet. Bei Ausfall ist eine lokale Dateianalyse möglich, sofern der Ersatzdienst verfügbar ist. Temporäre Dateien werden nach Abschluss, Fehler oder Abbruch gelöscht. Dein Konto speichert Dateiname oder Link, Datum, Status und Ergebnis 90 Tage; Gast-Ergebnisse 24 Stunden. Gastlimits verwenden ein Token und eine pseudonymisierte Netzwerkkennung, ohne die IP-Adresse im Klartext zu speichern.

Dieser Index ist weder Wahrscheinlichkeit noch Beweis. Ein niedriger Index garantiert keinen menschlichen Ursprung.

Werkzeug entdecken
audio:writequeue:read

Unterstützte Formate

Die vollständige, aktuelle Liste, mit genauen Grenzwerten und dem, was dieser Server tatsächlich bedient, steht immer unter GET /formats. Kurz gefasst:

Eingabeformate

  • Audio- und Videodateien
  • PDF: Akkorde, Texte, Noten, Tabulatur, gescanntes Liederbuch
  • Bilder: Akkorde, Texte, Noten, Tabulatur
  • Klartext, ChordPro, OnSong
  • Links und Websuche (page-link, web-search)
  • MusicXML, MIDI
  • JamSong, gemischtes .zip, Songbook (Pivot)

Ausgabeformate

  • Songbook (JSON-Pivot, immer verfügbar)
  • PDF: Akkorde, Texte, Noten, Tabulatur, Raster
  • PNG, HTML, Klartext, ChordPro
  • chords-lab, chords-csv, Tonart und BPM
  • MusicXML, MIDI (Premium)
  • Synchronisierte Texte: .lrc, .srt
  • Karaoke-Video (.mp4), Begleit-Audio, JamSong

In vier Schritten loslegen

Die Konvertierung ist asynchron: einreichen, verfolgen, abholen.

  1. Schlüssel erstellen

    Einstellungen › API-Schlüssel. Präfix jj_live_, wird nur einmal angezeigt, 5 Schlüssel pro Konto, widerrufbar.

    Meine API-Schlüssel verwalten
  2. Einreichen

    Eine Datei, eine URL oder Text, mit dem gewünschten Ausgabeformat.

    POST /jobs
  3. Verfolgen

    Frage unter Beachtung von Retry-After ab oder öffne einen Server-Sent-Events-Stream.

    GET /jobs/{id}GET /jobs/{id}/events
  4. Abholen

    Das Ergebnis bleibt 24 Stunden verfügbar, danach 410 Gone.

    GET /jobs/{id}/result

Beispiele

Vollständige Aufrufe, unverändert kopierbar.

Die von diesem Server bedienten Formate auflistencurl

curl https://jam-jam.org/api/v1/formats

Eine Datei in PDF umwandelncurl

curl -X POST https://jam-jam.org/api/v1/jobs \
  -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -F [email protected] \
  -F inputFormat=pdf-songbook \
  -F output=pdf-songbook

Eine URL in ein Songbook umwandelncurl

curl -X POST https://jam-jam.org/api/v1/jobs \
  -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/tabs/amazing-grace", "output": "songbook"}'

Fortschritt verfolgen (SSE oder Abfrage)curl

# Server-Sent Events
curl -N -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/jobs/jb_123/events

# Polling
curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/jobs/jb_123

Das Ergebnis herunterladencurl

curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -OJ https://jam-jam.org/api/v1/jobs/jb_123/result

Python (requests)python

import time
import requests

API = "https://jam-jam.org/api/v1"
HEADERS = {"Authorization": "Bearer jj_live_xxxxxxxxxxxxxxxx"}

# 1. Discover formats
formats = requests.get(f"{API}/formats").json()

# 2. Submit a conversion
resp = requests.post(
    f"{API}/jobs",
    headers=HEADERS,
    json={"url": "https://example.com/tabs/amazing-grace", "output": "songbook"},
)
resp.raise_for_status()
job = resp.json()

# 3. Poll until done (or use GET /jobs/{id}/events for SSE)
while job["phase"] not in ("done", "failed", "cancelled"):
    time.sleep(job.get("etaS", 2))
    job = requests.get(f"{API}/jobs/{job['id']}", headers=HEADERS).json()

# 4. Fetch the result
if job["phase"] == "done":
    songbook = requests.get(f"{API}/jobs/{job['id']}/result/songbook", headers=HEADERS).json()
    print(songbook["songs"][0]["title"])
else:
    print("failed:", job.get("problem"))

Einen Song mit der KI-Musikerkennung analysierencurl

# Availability and remaining quota (no key needed)
curl https://jam-jam.org/api/v1/ai-music/availability

# Analyze a file
curl -X POST https://jam-jam.org/api/v1/ai-music/jobs \
  -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -F "[email protected]"

# Analyze a Spotify link
curl -X POST https://jam-jam.org/api/v1/ai-music/jobs \
  -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://open.spotify.com/track/2JUDGXTQYGQZrVVUgq40Ke"}'

# History, current analysis, one analysis
curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/ai-music/history
curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/ai-music/jobs
curl -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/ai-music/jobs/JOB_ID

# Cancel
curl -X DELETE -H "Authorization: Bearer jj_live_xxxxxxxxxxxxxxxx" \
  https://jam-jam.org/api/v1/ai-music/jobs/JOB_ID

Codebeispiele

Sofort lauffähige Beispiele in curl, JavaScript und Python, Open Source unter MIT-Lizenz:

jam-jam-api-examples

Assistenten und MCP

Ein Assistent liest den Vertrag und baut seine Aufrufe selbst. Der offizielle MCP-Server gibt ihm 42 fertige Werkzeuge.

Für KI-Agenten

Lies zuerst GET /openapi.json: es dokumentiert die empfohlene Aufrufreihenfolge (Formate entdecken, einreichen, verfolgen, abrufen), Authentifizierung und Kontingente in einem x-agent-guide-Block, der für ein Modell gedacht ist. Die llms.txt dieser Website listet jede Konvertierungsfähigkeit als eigenen Eintrag.

MCP-Server

Schlüssel aus JAM_JAM_API_KEY: Es erscheinen nur die Werkzeuge, die seine Scopes erlauben. Er folgt niemandem, liked nichts und veröffentlicht nichts von sich aus.

Claude DesktopClaude CodeCursor
Im Detail

Ein offizieller Model-Context-Protocol-Server stellt einem Assistenten die API als 42 Tools mit dem Präfix jj_ bereit: Konvertierung von Dateien und Text, Lesen und Organisieren deines privaten Liederbuchs, Lesen öffentlicher Profile, Stem-Trennung, Audioanalyse und Warteschlange, KI-Musikerkennung und Mastering. Er liest deinen API-Schlüssel aus der Umgebungsvariable JAM_JAM_API_KEY und zeigt nur die Tools, die die Scopes dieses Schlüssels erlauben. Er übernimmt für dich das Abfragen, Kontingentfehler und Dateiergebnisse, sodass ein Assistent wie Claude Desktop, Claude Code oder Cursor eine Datei konvertieren oder dein Liederbuch ordnen kann, ohne dass du auch nur eine Zeile HTTP-Code schreibst. Er folgt nie jemandem, vergibt keine Likes und veröffentlicht von sich aus keinen Song.

Installationshell
npx -y @jam-jam/convert-mcp

Paketseite auf npm: npmjs.com/package/@jam-jam/convert-mcp

Konfiguration (Claude Desktop, Claude Code, Cursor)json
{
  "mcpServers": {
    "jam-jam": {
      "command": "npx",
      "args": ["-y", "@jam-jam/convert-mcp"],
      "env": {
        "JAM_JAM_API_KEY": "jj_live_xxxxxxxxxxxxxxxx"
      }
    }
  }
}

Tools und erforderliche Scopes 42

Konvertierung

Formate, Dateien, Text und Job-Status.

  • jj_list_formatskein Scope
  • jj_convert_fileconvert:write
  • jj_convert_textconvert:write
  • jj_get_jobconvert:read
Kontingent kein Scope

was der Schlüssel darf und wie viel noch übrig ist.

  • jj_check_usage
Privates Liederbuch, Lesen carnet:read

Songs und Playlists.

  • jj_list_songs
  • jj_get_song
  • jj_list_playlists
  • jj_get_playlist
Privates Liederbuch, Schreiben carnet:write

Songs und Playlists anlegen, ändern und löschen.

  • jj_create_song
  • jj_update_song
  • jj_delete_song
  • jj_create_playlist
  • jj_update_playlist
  • jj_delete_playlist
Öffentliche Profile, Lesen social:read

Profilkarten, veröffentlichte Songs und Playlists, Follower und Gefolgte.

  • jj_get_profile
  • jj_list_profile_songs
  • jj_list_profile_playlists
  • jj_list_followers
  • jj_list_following
Stem-Trennung

Fähigkeiten, Jobs und Dateien.

  • jj_stems_capabilitiesconvert:read
  • jj_stems_separatestems:write
  • jj_stems_get_jobconvert:read
  • jj_stems_list_jobsconvert:read
  • jj_stems_get_fileconvert:read
  • jj_stems_cancel_jobstems:write
Audioanalyse und Warteschlange

eine Datei analysieren, Jobs auflisten, lesen und abbrechen.

  • jj_audio_analyzeaudio:write
  • jj_queue_listqueue:read
  • jj_queue_get_jobqueue:read
  • jj_queue_cancel_jobaudio:write
KI-Musikerkennung

Verfügbarkeit, Analyse, Verlauf und Jobs.

  • jj_ai_music_availabilityqueue:read
  • jj_ai_music_analyzeaudio:write
  • jj_ai_music_currentqueue:read
  • jj_ai_music_get_jobqueue:read
  • jj_ai_music_historyqueue:read
  • jj_ai_music_cancel_jobaudio:write
Mastering

Fähigkeiten, Presets, Rendering, Job-Status und Abbruch.

  • jj_mastering_capabilitieskein Scope
  • jj_list_mastering_presetsmastering:read
  • jj_create_mastering_presetmastering:write
  • jj_master_audiomastering:write
  • jj_mastering_get_jobmastering:read
  • jj_mastering_cancel_jobmastering:write

Endpunkt-Referenz

Alle bereitgestellten Routen, nach Familie, mit Scope und Kontingent. Maßgeblich ist der vollständige Vertrag.

Konvertierung (Jobs) 6

Methode Pfad Scope Kontingent
POST /jobsReicht eine Konvertierung ein: eine Datei (multipart/form-data), eine URL oder reiner Text/ChordPro (application/json). Bei output=stems sind zusätzlich der Scope stems:write und ein Premium-API-Schlüssel nötig, mit eigenem Kontingent (200/UTC-Tag). convert:write Kontingent: Konvertierung
GET /jobs/{id}Job-Status (Phase, Prozent, Schritte). Per Abfrage verfolgen, dabei den Retry-After-Header beachten. convert:read Kontingent: keines
DELETE /jobs/{id}Bricht einen Job ab und löscht seine Dateien; erstattet das Kontingent nur, wenn er noch in der Warteschlange war. convert:write Kontingent: keines
GET /jobs/{id}/eventsAlternative zum Abfragen über Server-Sent Events: state-, done-, error- und Keep-Alive-Ping-Events. convert:read Kontingent: keines
GET /jobs/{id}/resultLädt das Hauptartefakt herunter (oder ein bestimmtes über ?artifact=). 24 Stunden nach Job-Erstellung verfügbar. convert:read Kontingent: keines
GET /jobs/{id}/result/songbookDer kanonische JSON-Songbook-Pivot (Akkorde, Text, Struktur), immer verfügbar, sobald der Job fertig ist. convert:read Kontingent: keines

Formate 1

Methode Pfad Scope Kontingent
GET /formatsRegister der Eingabe-/Ausgabepaare, die dieser Server tatsächlich bedient, mit Grenzwerten (maxBytes, maxPages, maxDurationS). öffentlich (kein Schlüssel nötig) Kontingent: keines

Nutzung & Kontingente 1

Methode Pfad Scope Kontingent
GET /me/usageDein Kontingentstand (Konvertierung, Lesen, Schreiben, Stems) und die Scopes, die deine Identität tatsächlich ausüben kann, in einem Aufruf. convert:read Kontingent: keines

Liederbuch, Lesen 4

Methode Pfad Scope Kontingent
GET /me/songsListet die Songs in deinem privaten Liederbuch auf, paginiert per undurchsichtigem Cursor; nutze updatedSince für einen inkrementellen Export. carnet:read Kontingent: Lesen
GET /me/songs/{songId}Ein vollständiger Song aus deinem Liederbuch, inklusive Akkorde, Text und Struktur. carnet:read Kontingent: Lesen
GET /me/playlistsListet die Playlists in deinem Liederbuch auf, flach und mehrfach zugehörig, gleiche Paginierung wie bei Songs. carnet:read Kontingent: Lesen
GET /me/playlists/{playlistId}Eine Playlist und ihre Songs, in Reihenfolge, als Kurzfassung. carnet:read Kontingent: Lesen

Liederbuch, Schreiben 8

Methode Pfad Scope Kontingent
POST /me/songsFügt deinem Liederbuch einen Song hinzu, dasselbe Pivot-Payload, das eine Konvertierung liefert. Setze Idempotency-Key, um Duplikate zu vermeiden. carnet:write Kontingent: Schreiben
PUT /me/songs/{songId}Ersetzt einen Song vollständig (deklarativ); legt ihn unter dieser ID an, falls er noch nicht existiert. carnet:write Kontingent: Schreiben
PATCH /me/songs/{songId}Ändert nur die gesendeten Felder (Tonart, Kapodaster, BPM, playlistIds...); veröffentlicht oder entfernt den Song auch von deinem Profil. carnet:write Kontingent: Schreiben
DELETE /me/songs/{songId}Entfernt einen Song aus deinem Liederbuch; sanft, idempotent, verlässt dabei auch alle Playlists. carnet:write Kontingent: Schreiben
POST /me/playlistsErstellt eine Playlist; songIds ist die geordnete Liste der enthaltenen Songs, genau wie gesendet beibehalten. carnet:write Kontingent: Schreiben
PUT /me/playlists/{playlistId}Ersetzt eine Playlist vollständig (deklarativ); songIds ist erforderlich. carnet:write Kontingent: Schreiben
PATCH /me/playlists/{playlistId}Benennt eine Playlist um, ändert das Cover-Emoji oder ordnet ihre Songs vollständig neu. carnet:write Kontingent: Schreiben
DELETE /me/playlists/{playlistId}Löscht die Playlist selbst; ihre Songs bleiben in deinem Liederbuch und in ihren anderen Playlists erhalten. carnet:write Kontingent: Schreiben

Sozial, nur Lesen 5

Methode Pfad Scope Kontingent
GET /users/{handle}Kopfzeile des öffentlichen Profils eines Kontos per Handle; ein privates Konto, dem du nicht folgst, liefert eine geschlossene Karte (ohne Bio, ohne Zähler). social:read Kontingent: Lesen
GET /users/{handle}/songsSongs, die ein Konto auf seinem Profil veröffentlicht hat; audioPlayable ist nur wahr, wenn ihr euch gegenseitig folgt. social:read Kontingent: Lesen
GET /users/{handle}/playlistsPlaylists, die ein Konto veröffentlicht hat; songCount zählt nur, was du tatsächlich sehen kannst. social:read Kontingent: Lesen
GET /me/followersKonten, die dir folgen; status=accepted (Standard) oder requested. social:read Kontingent: Lesen
GET /me/followingKonten, denen du folgst; status=requested listet noch ausstehende Anfragen an private Konten. social:read Kontingent: Lesen

Audio-Warteschlange & Stems 4

Methode Pfad Scope Kontingent
POST /audioReiht die automatische Analyse (Akkorde, Text) und anschließend die Ausrichtung für einen bereits in deinem Liederbuch vorhandenen Song ein. Dieselbe Warteschlange wie die App; songId muss dir gehören. audio:write Kontingent: keines
GET /queueDie Audio-Verarbeitungswarteschlange deines Kontos: aktiv, wartend (mit rank) und die der letzten 7 Tage abgeschlossenen. queue:read Kontingent: keines
GET /queue/{id}Ein Auftrag aus der Audio-Warteschlange, nur deiner; derselbe undifferenzierte 404 für einen unbekannten oder fremden Auftrag. queue:read Kontingent: keines
DELETE /queue/{id}Bricht einen deiner Audio-Warteschlangen-Aufträge ab; erstattet nur, wenn die Analyse noch nicht abgeschlossen war. audio:write Kontingent: keines

Spurentrennung 6

Methode Pfad Scope Kontingent
GET /stem-tool/capabilitiesVerfügbarkeit, Grenzen, Modelle und Kontingent für die Stem-Trennung des Aufrufenden prüfen. convert:read Kontingent: keines
GET /stem-tool/jobsPrivate Stem-Aufträge der aufrufenden Person mit optionalem Seiten-Cursor auflisten. convert:read Kontingent: keines
POST /stem-tool/jobsAudiodatei hochladen und in zwei oder vier Spuren zerlegen. API-Schlüssel erfordern Premium. stems:write Kontingent: Stems
GET /stem-tool/jobs/{id}Status, Fortschritt und verfügbare Dateien eines eigenen Auftrags abrufen. convert:read Kontingent: keines
DELETE /stem-tool/jobs/{id}Einen eigenen Auftrag zur Stem-Trennung abbrechen. stems:write Kontingent: keines
GET /stem-tool/jobs/{id}/files/{name}Eine kurzzeitig gültige, signierte Download-URL für eine MP3-Spur oder ein ZIP-Archiv abrufen. convert:read Kontingent: keines

Mit einem API-Schlüssel verlangen alle diese Routen ein Premium-Konto, sonst lautet die Antwort 403 (api-premium-required). Die Grenzen des Aufrufers liefert GET /stem-tool/capabilities.

Mastering 8

Methode Pfad Scope Kontingent
GET /mastering/capabilitiesLimits, Einstellbereiche, Lautheitsziele, integrierte Presets und Render-Berechtigung. öffentlich (kein Schlüssel nötig) Kontingent: keines
GET /mastering/presetsDeine Mastering-Presets auflisten. mastering:read Kontingent: keines
POST /mastering/presetsEin Mastering-Preset anlegen (Idempotency-Key erforderlich). mastering:write Kontingent: keines
DELETE /mastering/presets/{id}Eines deiner Mastering-Presets löschen. mastering:write Kontingent: keines
POST /mastering/jobsAudio hochladen und ein Mastering mit Preset oder Einstellungen starten. mastering:write Kontingent: Mastering (3/Woche kostenlos, unbegrenzt mit Premium)
GET /mastering/jobs/{id}Den Status eines Mastering-Auftrags abrufen. mastering:read Kontingent: keines
DELETE /mastering/jobs/{id}Einen Mastering-Auftrag abbrechen. mastering:write Kontingent: keines
GET /mastering/jobs/{id}/resultDie gemasterte WAV-Datei herunterladen. mastering:read Kontingent: keines

KI-Musikerkennung 7 + 1 intern

Methode Pfad Scope Kontingent
GET /ai-music/availabilityVerfügbarkeit des Werkzeugs, akzeptierte Formate und verbleibende Kontingente des Kontos oder Besuchers. öffentlich (kein Schlüssel nötig) Kontingent: keines
POST /ai-music/jobsReicht eine Audiodatei, einen Spotify-Link, einen direkten Audio-Link oder einen ISRC ein. Ein unfertiger Auftrag pro Konto; YouTube wird nicht unterstützt. audio:write Kontingent: KI-Erkennung
GET /ai-music/jobsFindet deine laufende oder letzte Analyse. queue:read Kontingent: keines
GET /ai-music/jobs/{id}Verfolgt eine Analyse und liest ihren Bericht. queue:read Kontingent: keines
DELETE /ai-music/jobs/{id}Bricht eine Analyse ab und löscht ihre temporären Dateien. audio:write Kontingent: keines
GET /ai-music/historyPrivater Verlauf der letzten 90 Tage, in Seiten zu 30; Konto erforderlich, kein Audio gespeichert. queue:read Kontingent: keines
DELETE /ai-music/history/{id}Löscht einen Scan aus deinem Verlauf; das Kontingent einer erfolgreichen Analyse wird nicht erstattet. audio:write Kontingent: keines
GET /ai-music/source/{token}/{filename}Temporäre Adresse, die dem Erkennungsdienst vorbehalten ist und höchstens 180 Sekunden gilt: Kein Client ruft sie auf. intern Kontingent: keines

Status & Spezifikation 2

Methode Pfad Scope Kontingent
GET /healthDienststatus und Verfügbarkeit je Engine (OMR, Audio, Video...); keine Authentifizierung nötig. öffentlich (kein Schlüssel nötig) Kontingent: keines
GET /openapi.jsonDieser Vertrag, als maschinenlesbares JSON. öffentlich (kein Schlüssel nötig) Kontingent: keines

Vollständiger, maschinenlesbarer Vertrag, immer mit dieser Tabelle synchron:

https://jam-jam.org/api/v1/openapi.json OpenAPI-Vertrag

Kontingente und Grenzen

Den genauen Stand liefern GET /me/usage und die X-Quota-*-Header jeder Antwort.

Konvertierung

Kostenloses Konto
6 / Woche
Premium
500 / Monat
Ohne Schlüssel und Sitzung
3 / 24 h

Derselbe Zähler wie der Liederbuch-Export in der App.

Lesen und Schreiben

pro UTC-TagKostenloses KontoPremium
Lesezugriffe (Liederbuch, Profile)2.00020.000
Schreibzugriffe (Liederbuch)2005.000

X-Read-Quota-* · X-Write-Quota-*

Spuren per Konvertierung

POST /jobs · output=stems

Premium-API-Schlüssel erforderlich: Ohne Premium lautet die Antwort 403 (premium-required).

Premium
200 pro UTC-Tag

Mit dem Aufruf dieser Routen versicherst du, die Rechte am gesendeten Audio zu besitzen.

Im Detail
  • POST /jobs mit output=stems liefert ein .zip: vocals, accompaniment und manifest.json.
  • Erforderliche Scopes: stems:write und convert:write.
  • Ein eigener Zähler, getrennt von den Konvertierungen, gezählt pro UTC-Tag (nicht über rollierende 24 Stunden).
  • Nicht zu verwechseln mit dem Werkzeug Spurentrennung (/stem-tool/*): Dort verlangt ein API-Schlüssel ein Premium-Konto, mit eigenen Grenzen (GET /stem-tool/capabilities).

Einen API-Schlüssel erhalten

Erstelle ein kostenloses Jam-Jam-Konto, öffne dann in der App (mobil oder web) Einstellungen, API-Schlüssel und erstelle einen Schlüssel. Er beginnt mit jj_live_ und wird nur einmal angezeigt: kopiere ihn sofort. Bis zu 5 Schlüssel pro Konto, jederzeit widerrufbar.

Fehler

Jeder Fehler, auf jeder Route, ist ein application/problem+json-Objekt (RFC 9457) mit einem stabilen code-Feld, an dem ein Client seine Logik ausrichten kann: quota-exhausted, rate-limited, unsupported-pair, not-found... Der vollständige Katalog steht im OpenAPI-Schema (components.schemas.Problem).

Aufbewahrung

Hochgeladene Dateien und erzeugte Ergebnisse werden 24 Stunden nach Erstellung des Jobs gelöscht. Nichts wird länger aufbewahrt, auch fehlgeschlagene Jobs nicht. Der Abruf eines Ergebnisses nach dieser Frist liefert 410 Gone.

Open-Source-Credits

Diese API stützt sich auf echte Open-Source-Engines. Ehrlich genutzt, namentlich genannt:

Modelle und Daten

Sprechererkennung (Studio): Stimmabdruck-Modell WeSpeaker ResNet34-LM, Projekt WeNet (github.com/wenet-e2e/wespeaker), trainiert auf VoxCeleb (VGG, Universität Oxford), Lizenz CC BY 4.0 (creativecommons.org/licenses/by/4.0/). Von Jam Jam verändert: Gewichte in halbe Genauigkeit umgewandelt.