Une API REST derrière le même moteur, à l'identique
L'API vit sur jam-jam.org/api/v1 et fait tourner exactement le même moteur que l'application web, l'app mobile et jam-jam.org/app/convert : un fichier déposé par l'un ou l'autre suit le même code et donne le même résultat. La documentation complète, avec des exemples curl et Python réels et de quoi générer une clé, est sur jam-jam.org/developers. La spécification OpenAPI 3.1, lisible par une machine, sur jam-jam.org/api/v1/openapi.json, embarque une séquence d'appels recommandée pour un agent ou un script, et jam-jam.org/llms.txt liste chaque capacité ci-dessous pour un assistant qui le lit directement. Un serveur MCP (Model Context Protocol) officiel, @jam-jam/convert-mcp, expose la même API en cinq outils, list_formats, convert_file, convert_text, get_job et get_usage, pour les agents compatibles MCP comme Claude Desktop, Claude Code ou Cursor.
Une clé, un quota, et aucune file d'attente
Appeler GET /formats ne demande aucune authentification et renvoie tous les formats que ce serveur accepte aujourd'hui, avec leurs limites de taille et de durée, pour qu'un script vérifie avant d'envoyer quoi que ce soit. Tout le reste attend un en-tête Authorization: Bearer, un jeton de session Supabase ou une clé API personnelle préfixée jj_live_..., créée gratuitement dans Paramètres > Clés API depuis l'application. Sans clé, l'appel est traité comme anonyme : 3 conversions par 24 heures glissantes. Un compte gratuit porte ce chiffre à 10 par semaine, le même quota glissant que l'export et l'import du carnet partagent déjà ; Premium le porte à 500 par mois. Chaque réponse qui consomme du quota porte des en-têtes X-Quota-* avec le solde exact, et les fichiers déposés comme les résultats sont supprimés 24 heures après la création du job, qu'il réussisse ou échoue.
Déposer un job, puis le suivre ou l'écouter
Une conversion est un job, pas une réponse immédiate : POST /jobs avec un fichier en multipart/form-data, ou une URL ou du texte collé en JSON, renvoie un 202 avec l'identifiant du job. À partir de là, GET /jobs/{id} sonde son état (en respectant l'en-tête Retry-After), ou GET /jobs/{id}/events ouvre un flux Server-Sent Events du même job pour un script qui préfère attendre plutôt que redemander. Une fois la phase à done, GET /jobs/{id}/result télécharge le fichier fini, et GET /jobs/{id}/result/songbook renvoie le même résultat que le pivot JSON propre à Jam Jam, accords, paroles, sections, tonalité, tempo, prêt à lire directement. Chaque erreur revient sous la forme standard application/problem+json plutôt qu'un simple code de statut.
En entrée : un enregistrement, un lien, un scan ou une photo
Un fichier audio ou vidéo devient un carnet avec ses accords, ses paroles, sa tonalité et son tempo déjà déterminés, la même détection que l'app fait tourner sur un micro en direct ou un fichier déposé, et de là il peut partir directement vers une vidéo karaoké générée ou une piste d'accompagnement. Une page collée par son URL, ou une requête de recherche, se lit de la même façon qu'un site de tablatures dans l'app. Un PDF ou une photo, une feuille d'accords imprimée, une partition scannée, un carnet entier, une tablature de guitare, même la photo d'un tableau blanc prise au téléphone, passe par l'OCR et la reconnaissance optique de partition vers le même pivot. Transformer l'audio brut lui-même en notation, en portée ou en tablature, reste pour l'instant derrière une porte de qualité : cette direction demande une source qui porte déjà la mélodie, pas un enregistrement en direct.
En entrée : du texte et de la notation que tu as déjà
Les fichiers ChordPro et OnSong, du texte brut avec accords ou paroles ou une tablature ASCII, un document Word ou RTF, des diapositives, un tableur ou une feuille de route au format CSV, et le HTML d'une page web collée se convertissent tous vers le même carnet, parce qu'une feuille d'accords arrive rarement sous une seule forme. Les fichiers MusicXML et MIDI apportent leurs propres notes et, quand ils en ont, leurs paroles ; un fichier de projet Guitar Pro ou MuseScore (.gp, .gpx, .mscz et extensions apparentées) atteint le carnet de la même façon, en bêta ; un fichier de paroles synchronisées (.lrc, .srt, .vtt, .ass) apporte son minutage ; et un fichier .jamsong ou un export zippé se réimporte sans perte, exactement comme il est sorti de Jam Jam.
En sortie : le format dont le job a vraiment besoin
Depuis ce même carnet, l'API exporte un PDF des accords, des paroles ou une grille vierge ; une image PNG, une page HTML, du texte brut, du ChordPro, une annotation d'accords chords-lab ou chords-csv, ou juste la tonalité et le tempo ; une version transposée ou avec capo ; des diagrammes d'accords pour guitare, ukulélé, piano et les autres instruments couverts par Jam Jam ; des paroles synchronisées en .lrc ou .srt ; une vidéo karaoké ; une piste d'accompagnement générée ; ou le fichier .jamsong sans perte, prêt à imprimer sur demande. Une fois une mélodie réellement présente, importée depuis un MusicXML, un MIDI, un projet Guitar Pro, une partition scannée ou une tablature plutôt que de l'audio brut, ce même carnet s'exporte aussi en partition, en PDF de tablature guitare, en MIDI ou en MusicXML, ces deux derniers en Premium.
Pour la vue d'ensemble du pipeline de conversion de Jam Jam, lis l'article sur la conversion universelle de fichiers.
Questions fréquentes sur l'API
Qu'est-ce que l'API Jam Jam ?
Une API REST publique sur jam-jam.org/api/v1 qui fait tourner le moteur de conversion propre à Jam Jam : envoie-lui un fichier audio, un PDF, une photo, un lien, du MIDI, du MusicXML, du ChordPro ou du texte brut, et récupère un carnet structuré (accords, paroles, tonalité, tempo) ou un export portable comme un PDF, une vidéo karaoké ou une piste d'accompagnement.
L'API est-elle gratuite ?
Oui, jusqu'à un quota. Les appels anonymes ont droit à 3 conversions par 24 heures glissantes, un compte gratuit à 10 par semaine, et Premium porte ce chiffre à 500 par mois. Les fichiers déposés et les résultats sont supprimés 24 heures après l'exécution du job.
L'API peut-elle transformer un fichier audio en accords et en paroles ?
Oui. Déposer un fichier audio ou vidéo avec output: songbook renvoie des accords horodatés, la tonalité, le tempo et les paroles, la même détection que l'app fait tourner elle-même. La notation mélodique complète depuis de l'audio brut (MIDI, MusicXML, une portée ou une tablature) n'en fait pas partie : elle demande une source qui porte déjà la mélodie.
Existe-t-il un serveur MCP pour les agents IA ?
Oui, @jam-jam/convert-mcp expose la même API en cinq outils, list_formats, convert_file, convert_text, get_job et get_usage, pour qu'un agent compatible MCP comme Claude Desktop, Claude Code ou Cursor puisse l'appeler directement.
Où obtenir une clé API ?
Crée un compte Jam Jam gratuit, puis ouvre Paramètres > Clés API dans l'application (mobile ou web) et génère-en une. Elle ne s'affiche qu'une fois, commence par jj_live_, et peut être révoquée à tout moment ; 5 clés maximum par compte.
Lis la référence complète, avec des exemples curl et Python réels, sur jam-jam.org/developers :