Skip to content

Developer changelog

Every REST API and Embed SDK version, and what changed in the developer dashboard. Newest first, back to the first public release.

15 September·New

A new developer dashboard, with OMR jobs, credits and a playground

The developer dashboard app overview with a capability card for Embed, OMR, REST API, Import API and LTI

The developer dashboard has been rebuilt around what your integration can do. Each capability (Embed, OMR, REST API, Import API, LTI) gets a card with its scope, pricing and documentation, and the ones your app already uses come first.

  • A new OMR section at account level, with your jobs, your credits and their history in one place, since OMR credits are shared by all your apps.
  • Try OMR before you write code. The playground takes a PDF or photos, shows the page count, the cost per page and the balance you would be left with, then runs the job once you confirm. Output goes to MusicXML downloads; nothing lands in your library.
  • Clearer app pages. Personal tokens, OAuth2 credentials and OMR access are grouped per application, with the credentials that carry the OMR scope clearly marked.

Open it from flat.io/developers.

10 September·New

API v2.26.0: the OMR API leaves beta, assignments get full read, update and delete

Our REST API specification moves to OpenAPI 3.1, the OMR API closes its beta period, and Flat for Education assignments open up beyond listing and creating.

  • The OMR API is stable. Endpoints, fields and behaviour now follow our usual deprecation process before any breaking change. A new FAQ covers credits and billing, limits and processing times, recognition quality and languages, and commercial use and privacy.
  • Read, update and delete assignments in Flat for Education. Deleting an assignment also removes its submissions and the students' copies; archive it instead to keep the work.
  • Credit ledger. A new call lists your credit history; the balance stays on the OMR capabilities call.
  • Finale files (.musx) can be imported, on a best-effort basis, and scanned music import (PDF and images) is documented on score creation.
  • OpenAPI 3.1. Nullable fields use the 3.1 syntax; tooling pinned to OpenAPI 3.0 needs an update. The mimeType field was removed from OMR file uploads.

Also in September

2 smaller changes
4 August·New

API v2.25.0: control how long OMR jobs keep your files, ABC export

  • Data retention you control. OMR jobs now tell you how long their files are kept (30 days by default), each MusicXML job carries its expiry date, and you can erase a job's files and results as soon as you have collected them.
  • Feature detection before sign-in. The OMR capabilities call works without an account and lists the supported recognition languages with their names.
  • ABC notation export for any score revision, alongside MusicXML, MIDI and the other formats. Like MIDI, it does not carry the full engraving.
  • Free Record assignments can be configured through the API in Flat for Education.
  • Errors coming from an upstream provider (Google Classroom, for example) now carry the provider's own localised message.
10 July·New·

OMR is now available as a developer API

Flat's OMR engine is now available programmatically through the developer API. Send PDFs or photos, follow recognition progress, review the detected instruments, then import the result as an editable score in a Flat library or export MusicXML or MIDI. It's the same in-house model that powers PDF and photo import in the editor, now available at scale for your own apps and workflows.

The dedicated OMR API (v2.24.0) builds on the background PDF import added to score creation in v2.23.0: ask for task support when importing a file and poll the task until the score is ready. See the API changelog for the details of both releases.

7 April·New

API v2.22.0: 15+ import formats, virtual collections, rubrics, student groups and LTI 1.3

The largest specification update since 2024, bringing the API into line with two years of product changes.

  • Import from 15+ formats. Guitar Pro, MuseScore, ABC notation, PowerTab, Capella, MEI, Overture, TablEdit, Band-in-a-Box, Karaoke MIDI, MuseData, Score Writer, Bagpipe Music Writer and Encore join MusicXML and MIDI, and scores can be exported as native .flat files.
  • Virtual collections. All scores, collaborations and likes replace the legacy folder hierarchy in the library, matching the redesigned Flat library.
  • Flat for Education. Performance assignments with audio or video recordings and backing track, metronome and speed options; group submissions for shared writing; rich text instructions; student sub-groups; scheduled and individually targeted Microsoft Teams assignments; rich descriptions and assignment types in the resource library.
  • Unified LTI configuration for LTI 1.1 and 1.3, including dynamic registration. The previous LTI 1.1 credentials calls are deprecated.
  • Yearly statistics on scores, public score counts on profiles, and removal of a few long-deprecated fields.

Also in April

2 smaller changes

In March

2 smaller changes
16 February·New

Embed SDK v2.9.0: MP3 and WAV export, with progress

  • Added methods getMP3 and getWAV for audio export
  • Added the exportProgress event, so a long export can show progress

Also in February

1 smaller change
2025

In December

1 smaller change

In October

1 smaller change

In August

1 smaller change

In April

1 smaller change

In March

1 smaller change
2024
18 October·New

API v2.21.0: public community profiles and richer resource library filters

  • User score listings are public profiles. Listing a user's scores now returns only their public scores, with new pagination and sorting, the change announced in 2020.
  • Score details expose the edit URL, instrument names and any scheduled deletion date; collections report their scores count; public profiles show likes and plays counts.
  • Flat for Education. Filter the resource library by assignment type, subject and grade; resources carry a sharing description and privacy capabilities; assignments can restrict note playing and audio tracks; submissions support LTI 1.1 and 1.3 grade services.
8 March·New

API v2.20.0: collaborator types, graded submissions and reusable invitations

  • Paginated likes on user profiles, and the product a user is on in their account details.
  • Resource rights say whether the caller is the owner, a user collaborator or a group collaborator, with the date each collaborator was added. Score details add the main key signature, highlight date and organisation.
  • Flat for Education. Invitations can be reused several times; submissions gain a graded state plus playback and LTI details; an assignment can be copied to the resource library only if it is not already there; organisations get their own resource libraries with an organisation-wide privacy level.

In January

1 smaller change
2023

In November

1 smaller change
2 October·New

Embed SDK v2.1.0: inspect parts, voices and notes, and mute the audio

Read the structure of the loaded score from your code.

  • Parts and voices: getNbParts, getPartsUuids, getMeasureVoicesUuids
  • Notes: getMeasureNbNotes, getNoteData, playbackPositionToNoteIdx
  • New URL parameter noAudio disables audio playback
  • Fixed setMasterVolume calling the wrong underlying method
27 September·Deprecated

Embed SDK v2.0.0: TypeScript types, ES and UMD builds, jQuery dropped

  • Removed support for jQuery in the constructor — pass a DOM element or its id instead
  • The published npm module ships TypeScript types
  • Separate ES and UMD builds

Also in September

1 smaller change
5 May·New

API v2.18.0: the Resource Library API, in beta

  • Resource Library API (beta). Browse and manage Flat for Education resource libraries, with two new OAuth2 scopes for full and read-only access. Assignments can be copied to the resource library.
  • Test students. Create testing student accounts in a class to try assignments as a student would.
  • Assignments report what you can do with them (edit, publish, archive…), whether their attachments are dedicated copies, and any issue encountered. Submission history records the source of a change when it comes from Google Classroom, Microsoft Teams or an LMS.
  • Resetting a submission keeps it in place instead of deleting it; class metadata (level, skills, size) and Microsoft sign-in details on accounts are exposed.
  • Score revisions return their start and end dates; score builders can enable quarter tones; copies can keep the original title.

In April

1 smaller change
8 March·New

Embed SDK v1.5.0: navigate bars, and control the metronome and playback speed

  • Bars: getNbMeasures, getMeasuresUuids
  • Navigation: goLeft, goRight, scrollToCursor
  • Metronome: getMetronomeMode, setMetronomeMode
  • Playback speed: getPlaybackSpeed, setPlaybackSpeed
2022

In April

1 smaller change

In March

1 smaller change
2021

In December

1 smaller change
4 October·New

API v2.14.0: create blank scores from a list of instruments

  • Score builder. Create a blank score without importing a MusicXML file: provide a list of instruments and, optionally, the time signature, key signature, tablature, chord grids and page layout.
  • Flat for Education. Organisation users can be created with a role; worksheets can shuffle their exercises; student submissions list the exercises they contain.
19 July·New

API v2.13.0: synchronised playback tracks, Microsoft Teams details, scheduled assignment copies

  • Playback tracks. List the tracks Flat generates and synchronises automatically (playback as an MP3), fetch the synchronisation points of the latest playback file, and get the CDN URL of an export in the response body.
  • Flat for Education. Teachers can reset a student's submission; classes report the accounts that could not be added during a sync; assignments and submissions expose their Microsoft Teams state and links; assignment copies can be scheduled; performance submissions carry their saved audio track.
  • Profiles gain a cover picture, and the current user's id can be fetched on its own.
28 April·New

Embed SDK v1.4.0: private scores by sharing key, and audio tracks from code

  • loadFlatScore accepts a sharingKey, so a privately shared score can be loaded
  • Added setTrack, useTrack and seekTrackTo to set the audio track dynamically
18 February·New

API v2.12.0: export grades as CSV or Excel, assignment types and covers

  • Grade exports. Download an assignment's grades as a CSV or Excel file.
  • Assignments include their type and a cover image; copying an assignment can overwrite an existing draft with another assignment's content.
  • Collaborators show whether they are still a pending invitation.
2020
26 October·New

API v2.11.0: grading, submission comments and richer assignment options

  • Grading through the API. Set draft and final grades, return a submission to a student, and read computed comment counters; the maximum points are stored with the grade.
  • Submission comments. Create, list, update and delete comments on a submission.
  • Assignment options. Toolsets, a playback limit, maximum points, Google Classroom topics, assigning specific students, locked templates, and details of LTI, Canvas and MusicFirst assignments.
  • Admins can edit a managed account's username, name and email; user listings can be filtered by active licence.
  • The old studentComment and returnFeedback submission parameters were removed in favor of the new grading calls.
3 June·New

API v2.10.0: archive assignments, count and filter organisation users

  • Archive and unarchive assignments, and read an assignment's main type (new score, template or shared writing).
  • Organisation users. Create accounts with a first and last name, sort and filter user listings, count the users matching a filter, and filter group members by their sync source (Google Classroom, Microsoft Teams, Clever).
  • Score details list the audio samples used by playback, with a normalised instrument list that no longer depends on the samples.
24 February·New

Embed SDK v1.3.0: mix playback, and inspect notes and bars

Control the mix from your code, and read what is under the cursor.

  • Volume and mute: getMasterVolume, setMasterVolume, getPartVolume, setPartVolume, mutePart, unmutePart
  • Solo and reverb: setPartSoloMode, unsetPartSoloMode, getPartSoloMode, getPartReverb, setPartReverb
  • Inspection: getMeasureDetails, getNoteDetails
  • Added events: noteDetails, measureDetails, cursorContext
10 January·New

API v2.9.0: OpenAPI 3 specification, Google Drive attachments, arranger and plays

  • The specification moves to OpenAPI 3.0. Previous versions were described in OpenAPI 2 (Swagger).
  • Scores expose an arranger and their play statistics; a deletion can be scheduled to run shortly instead of sitting in the bin.
  • Flat for Education. Assignment attachments can be Google Drive files, classes carry their Microsoft Teams details, and education accounts expose a first and last name.

Also in January

1 smaller change
2019

In May

2 smaller changes
27 April·New

API v2.8.0: real-time metadata updates, submission states, Turkish

  • Metadata edits reach the editor live. Updating a score's title, subtitle, composer, lyricist or licence text through the API is pushed to open editors in real time, and a new version is saved. Descriptions can be twice as long (2,000 characters).
  • Education submissions expose their state (created, turned in, returned); revision metadata returns the last modification event.
  • Turkish joins the supported locales; public profiles say whether an account belongs to the Flat team.
2018
29 November·Deprecated

Embed SDK v0.11.0: MIDI export and a new MusicXML return format

  • Added getMIDI
  • getMusicXML now returns a Uint8Array at the top level — the response no longer carries a .data property
  • The cursor's voiceIdx is now voiceIdxInStaff
23 November·Deprecated

Embed SDK v0.10.0: new default CDN and two removals

Updated for the embed release.

  • The SDK now loads from flat-embed.com by default
  • Removed the deprecated edit action and edit event
  • Removed setNoteColor
11 September·New

API v2.7.0: import Guitar Pro, PowerTab, TuxGuitar and MuseScore files

  • More import formats. Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files can be imported, and imports accept a filename.
  • Collections can be listed under a parent collection and report their creation date; scores list the collections they belong to.
  • Contextual comments are anchored to a staff by identifier rather than by index, and resource rights say whether the caller is a collaborator.
23 April·New

API v2.6.0: the Collections API

  • Collections API. Create, list, update, delete and restore collections, list their scores, and add or remove scores, with three new OAuth2 scopes for read-only, add-only and full access.
  • Scores can be restored from the bin; deleting a score without admin rights unshares it from your account instead; a copy can target a specific collection.
  • Comments can be filtered by type (document or inline).
  • Part exports now take part identifiers instead of indexes, and from September 2019 a user's score listing only returns public scores.
2017

In November

1 smaller change

In October

2 smaller changes
28 August·New

API v2.3.0: manage organisation accounts, class states, Canvas and Clever details

  • Organisation account management. Admins can update managed accounts, and delete them or convert them to consumer accounts; user and invitation listings use cursor-based pagination.
  • Classes gain an inactive state that can be activated again, and report their Canvas LMS domain and Clever section; assignments gain a draft state and an exercise attachment type.
  • Profiles expose a theme and the instruments played.

Also in August

2 smaller changes
7 July·New

Embed SDK v0.5.0: focus the score and choose the default mode

  • Added method focusScore to give the embed keyboard focus
  • New defaultMode property in the editor configuration
2 July·New

API v2.2.0: the Flat for Education API

  • The first education APIs are public. Manage classes, assignments and submissions, organisation accounts and invitations, LTI credentials, and the groups and users of an organisation: everything a school integration needs.
  • Scoped access. New OAuth2 scopes cover classes, assignments and organisation administration, each with a read-only variant, so an integration only asks for what it needs.

Also in July

1 smaller change
3 May·New

Embed SDK v0.3.0: read the embed configuration and switch the editor on

Your code can now inspect how the embed is configured and turn it into an editor.

  • Added methods: getEmbedConfig, setEditorConfig, edit
  • Added event: edit
21 April·New

Embed SDK v0.2.0: auto-zoom, MusicXML loading and the first events

The SDK can now load scores from MusicXML and report what the reader is doing.

  • Added methods: getAutoZoom, setAutoZoom, loadMusicXML, getMusicXML
  • Added events: scoreLoaded, cursorPosition, rangeSelection, pause, stop, fullscreen, print
  • Added integration tests
10 April·New

The Flat REST API is public

The first public release of Flat's REST API. Read and manage your account, scores, users and groups from your own apps and scripts, with OAuth2 for acting on behalf of other Flat users.

Everything since then is recorded in the API changelog, and the developer documentation covers authentication, the reference and guides.

Also in April

2 smaller changes