[{"data":1,"prerenderedAt":1673},["ShallowReactive",2],{"flat-community-challenge":3,"footer-community-challenge":4,"changelog-developers-en-GB":17},"https:\u002F\u002Fflat.io\u002Fcommunity\u002Fchallenges\u002F2026-09",{"type":5,"title":6,"websiteUrl":3,"websitePathname":7,"apiUrl":8,"apiOperationId":9,"apiOperationParameters":10,"challengeDetails":12},"COLLECTION","September Challenge","\u002Fcommunity\u002Fchallenges\u002F2026-09","https:\u002F\u002Fflat.io\u002Fapi\u002Fv2\u002Fcollections\u002F6a984ca0dd2005088aaeb4e7\u002Fscores","listCollectionScores",{"collection":11},"6a984ca0dd2005088aaeb4e7",{"title":13,"illustrationUrl":14,"infoUrl":15,"deadlineDate":16},"September Challenge: Soundtrack for an Action Movie","https:\u002F\u002Fuser-content.flat-cdn.com\u002Ftutteo\u002F821fbe5b-5aa3-4872-8d0f-7e5e28886b20.png","https:\u002F\u002Fdocs.google.com\u002Fforms\u002Fd\u002Fe\u002F1FAIpQLSdz0NGY5hK06h8t27JtVqfFx3zeIkBTgqseaPYWNyeeuqjAEA\u002Fviewform","2026-10-01T05:59:00.000Z",{"product":18,"locale":19,"generatedAt":20,"categories":21,"platforms":35,"count":39,"years":40,"months":313,"older":1655,"releaseAnchors":1656,"moved":1672},"developers","en-GB","2026-09-21T08:58:18.509Z",{"library":22,"editor":23,"playback":24,"import-export":25,"omr":26,"assignments":27,"worksheets":28,"classes":29,"collaboration":30,"api":31,"billing":32,"embed":33,"accounts":34},"Library","Editor","Playback","Import and export","OMR","Assignments","Worksheets","Classes","Collaboration","API","Billing","Embed SDK","Accounts",[36,37,38],"web","api","embed",63,[41,70,97,124,151,178,205,232,259,286],{"year":42,"months":43},2026,[44,47,50,52,54,56,58,60,62,64,66,68],{"key":45,"hasEntries":46},"2026-01",false,{"key":48,"hasEntries":49},"2026-02",true,{"key":51,"hasEntries":49},"2026-03",{"key":53,"hasEntries":49},"2026-04",{"key":55,"hasEntries":46},"2026-05",{"key":57,"hasEntries":46},"2026-06",{"key":59,"hasEntries":49},"2026-07",{"key":61,"hasEntries":49},"2026-08",{"key":63,"hasEntries":49},"2026-09",{"key":65,"hasEntries":46},"2026-10",{"key":67,"hasEntries":46},"2026-11",{"key":69,"hasEntries":46},"2026-12",{"year":71,"months":72},2025,[73,75,77,79,81,83,85,87,89,91,93,95],{"key":74,"hasEntries":46},"2025-01",{"key":76,"hasEntries":46},"2025-02",{"key":78,"hasEntries":49},"2025-03",{"key":80,"hasEntries":49},"2025-04",{"key":82,"hasEntries":46},"2025-05",{"key":84,"hasEntries":46},"2025-06",{"key":86,"hasEntries":46},"2025-07",{"key":88,"hasEntries":49},"2025-08",{"key":90,"hasEntries":46},"2025-09",{"key":92,"hasEntries":49},"2025-10",{"key":94,"hasEntries":46},"2025-11",{"key":96,"hasEntries":49},"2025-12",{"year":98,"months":99},2024,[100,102,104,106,108,110,112,114,116,118,120,122],{"key":101,"hasEntries":49},"2024-01",{"key":103,"hasEntries":46},"2024-02",{"key":105,"hasEntries":49},"2024-03",{"key":107,"hasEntries":46},"2024-04",{"key":109,"hasEntries":46},"2024-05",{"key":111,"hasEntries":46},"2024-06",{"key":113,"hasEntries":46},"2024-07",{"key":115,"hasEntries":46},"2024-08",{"key":117,"hasEntries":46},"2024-09",{"key":119,"hasEntries":49},"2024-10",{"key":121,"hasEntries":46},"2024-11",{"key":123,"hasEntries":46},"2024-12",{"year":125,"months":126},2023,[127,129,131,133,135,137,139,141,143,145,147,149],{"key":128,"hasEntries":46},"2023-01",{"key":130,"hasEntries":46},"2023-02",{"key":132,"hasEntries":49},"2023-03",{"key":134,"hasEntries":49},"2023-04",{"key":136,"hasEntries":49},"2023-05",{"key":138,"hasEntries":46},"2023-06",{"key":140,"hasEntries":46},"2023-07",{"key":142,"hasEntries":49},"2023-08",{"key":144,"hasEntries":49},"2023-09",{"key":146,"hasEntries":49},"2023-10",{"key":148,"hasEntries":49},"2023-11",{"key":150,"hasEntries":46},"2023-12",{"year":152,"months":153},2022,[154,156,158,160,162,164,166,168,170,172,174,176],{"key":155,"hasEntries":46},"2022-01",{"key":157,"hasEntries":46},"2022-02",{"key":159,"hasEntries":49},"2022-03",{"key":161,"hasEntries":49},"2022-04",{"key":163,"hasEntries":46},"2022-05",{"key":165,"hasEntries":46},"2022-06",{"key":167,"hasEntries":46},"2022-07",{"key":169,"hasEntries":46},"2022-08",{"key":171,"hasEntries":46},"2022-09",{"key":173,"hasEntries":46},"2022-10",{"key":175,"hasEntries":46},"2022-11",{"key":177,"hasEntries":46},"2022-12",{"year":179,"months":180},2021,[181,183,185,187,189,191,193,195,197,199,201,203],{"key":182,"hasEntries":46},"2021-01",{"key":184,"hasEntries":49},"2021-02",{"key":186,"hasEntries":46},"2021-03",{"key":188,"hasEntries":49},"2021-04",{"key":190,"hasEntries":46},"2021-05",{"key":192,"hasEntries":46},"2021-06",{"key":194,"hasEntries":49},"2021-07",{"key":196,"hasEntries":46},"2021-08",{"key":198,"hasEntries":46},"2021-09",{"key":200,"hasEntries":49},"2021-10",{"key":202,"hasEntries":49},"2021-11",{"key":204,"hasEntries":49},"2021-12",{"year":206,"months":207},2020,[208,210,212,214,216,218,220,222,224,226,228,230],{"key":209,"hasEntries":49},"2020-01",{"key":211,"hasEntries":49},"2020-02",{"key":213,"hasEntries":46},"2020-03",{"key":215,"hasEntries":46},"2020-04",{"key":217,"hasEntries":46},"2020-05",{"key":219,"hasEntries":49},"2020-06",{"key":221,"hasEntries":46},"2020-07",{"key":223,"hasEntries":46},"2020-08",{"key":225,"hasEntries":46},"2020-09",{"key":227,"hasEntries":49},"2020-10",{"key":229,"hasEntries":46},"2020-11",{"key":231,"hasEntries":46},"2020-12",{"year":233,"months":234},2019,[235,237,239,241,243,245,247,249,251,253,255,257],{"key":236,"hasEntries":46},"2019-01",{"key":238,"hasEntries":46},"2019-02",{"key":240,"hasEntries":46},"2019-03",{"key":242,"hasEntries":49},"2019-04",{"key":244,"hasEntries":49},"2019-05",{"key":246,"hasEntries":46},"2019-06",{"key":248,"hasEntries":46},"2019-07",{"key":250,"hasEntries":46},"2019-08",{"key":252,"hasEntries":46},"2019-09",{"key":254,"hasEntries":46},"2019-10",{"key":256,"hasEntries":46},"2019-11",{"key":258,"hasEntries":46},"2019-12",{"year":260,"months":261},2018,[262,264,266,268,270,272,274,276,278,280,282,284],{"key":263,"hasEntries":46},"2018-01",{"key":265,"hasEntries":46},"2018-02",{"key":267,"hasEntries":46},"2018-03",{"key":269,"hasEntries":49},"2018-04",{"key":271,"hasEntries":46},"2018-05",{"key":273,"hasEntries":46},"2018-06",{"key":275,"hasEntries":46},"2018-07",{"key":277,"hasEntries":46},"2018-08",{"key":279,"hasEntries":49},"2018-09",{"key":281,"hasEntries":46},"2018-10",{"key":283,"hasEntries":49},"2018-11",{"key":285,"hasEntries":46},"2018-12",{"year":287,"months":288},2017,[289,291,293,295,297,299,301,303,305,307,309,311],{"key":290,"hasEntries":46},"2017-01",{"key":292,"hasEntries":46},"2017-02",{"key":294,"hasEntries":46},"2017-03",{"key":296,"hasEntries":49},"2017-04",{"key":298,"hasEntries":49},"2017-05",{"key":300,"hasEntries":46},"2017-06",{"key":302,"hasEntries":49},"2017-07",{"key":304,"hasEntries":49},"2017-08",{"key":306,"hasEntries":46},"2017-09",{"key":308,"hasEntries":49},"2017-10",{"key":310,"hasEntries":49},"2017-11",{"key":312,"hasEntries":46},"2017-12",[314,410,432,459,522,564,605,629,653,676,699,722,743,764,787,811,832,873,894,916,939,960,983,1006,1029,1051,1074,1096,1117,1137,1157,1178,1199,1239,1280,1300,1339,1359,1379,1402,1441,1499,1557,1578],{"key":63,"year":42,"month":315,"majors":316,"areas":362},9,[317,340],{"slug":318,"title":319,"locale":19,"products":320,"platforms":322,"categories":323,"kind":324,"size":325,"publicationDate":326,"modificationDate":327,"links":328,"images":332,"track":18,"bodyHtml":336,"excerpt":337,"primaryCategory":37,"ownPage":338,"date":339},"2026-09-15-a-new-developer-dashboard-with-omr-jobs-credits-and-a-playground","A new developer dashboard, with OMR jobs, credits and a playground",[321],"flat",[37,36],[37],"new","major","2026-09-16T15:18:58.086Z","2026-09-18T13:45:28.795Z",{"blogPosts":329,"helpArticles":330,"releases":331},[],[],[],[333],{"url":334,"alt":335},"https:\u002F\u002Fuser-content.flat-cdn.com\u002Ftutteo\u002F87f9c3ba-e021-4458-9456-4024e7e67592.png","The developer dashboard app overview with a capability card for Embed, OMR, REST API, Import API and LTI","\u003Cp>\u003Cimg src=\"https:\u002F\u002Fuser-content.flat-cdn.com\u002Ftutteo\u002F6fdd7f1a-46e7-44c7-9c88-50376e7ee7a6.png\" alt=\"The developer dashboard app overview with a capability card for Embed, OMR, REST API, Import API and LTI\" loading=\"lazy\">\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>A new OMR section at account level\u003C\u002Fstrong>, with your jobs, your credits and their history in one place, since OMR credits are shared by all your apps.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Try OMR before you write code.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clearer app pages.\u003C\u002Fstrong> Personal tokens, OAuth2 credentials and OMR access are grouped per application, with the credentials that carry the OMR scope clearly marked.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Open it from \u003Ca href=\"https:\u002F\u002Fflat.io\u002Fdevelopers\u002F\" rel=\"referer\">flat.io\u002Fdevelopers\u003C\u002Fa>.\u003C\u002Fp>","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…","active","2026-09-15",{"slug":341,"title":342,"locale":19,"products":343,"platforms":345,"categories":346,"kind":324,"size":325,"publicationDate":349,"modificationDate":350,"links":351,"images":357,"track":18,"bodyHtml":358,"excerpt":359,"primaryCategory":37,"ownPage":360,"date":361},"2026-09-10-api-v2-26-0-the-omr-api-leaves-beta-assignments-get-full-read-update-and-delete","API v2.26.0: the OMR API leaves beta, assignments get full read, update and delete",[321,344],"flatEdu",[37],[37,347,348],"omr","assignments","2026-09-16T11:56:16.502Z","2026-09-16T16:00:46.587Z",{"blogPosts":352,"helpArticles":353,"releases":354},[],[],[355],{"platform":37,"version":356},"2.26.0",[],"\u003Cp>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.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>The OMR API is stable.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Read, update and delete assignments\u003C\u002Fstrong> in Flat for Education. Deleting an assignment also removes its submissions and the students' copies; archive it instead to keep the work.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Credit ledger.\u003C\u002Fstrong> A new call lists your credit history; the balance stays on the OMR capabilities call.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Finale files (\u003Ccode>.musx\u003C\u002Fcode>) can be imported\u003C\u002Fstrong>, on a best-effort basis, and scanned music import (PDF and images) is documented on score creation.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OpenAPI 3.1.\u003C\u002Fstrong> Nullable fields use the 3.1 syntax; tooling pinned to OpenAPI 3.0 needs an update. The \u003Ccode>mimeType\u003C\u002Fcode> field was removed from OMR file uploads.\u003C\u002Fli>\n\u003C\u002Ful>","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. -…","none","2026-09-10",[363,390],{"category":364,"name":25,"count":365,"entries":366},"import-export",1,[367],{"slug":368,"title":369,"locale":19,"products":370,"platforms":371,"categories":372,"kind":373,"size":374,"publicationDate":375,"modificationDate":376,"links":377,"images":385,"track":386,"bodyHtml":387,"excerpt":388,"primaryCategory":364,"ownPage":360,"date":389},"2026-09-01-musicxml-exports-move-to-musicxml-4-0-with-swing-markings-and-valid-tablature-tu","MusicXML exports move to MusicXML 4.0, with swing markings and valid tablature tunings",[321,344],[36,37],[364],"improved","minor","2026-09-16T12:51:38.024Z","2026-09-17T12:10:20.804Z",{"blogPosts":378,"helpArticles":379,"releases":384},[],[380],{"locale":381,"url":382,"title":383},"en","https:\u002F\u002Fhelp.flat.io\u002Fen\u002Fmusic-notation-software\u002Fimport\u002F","How to import MusicXML, MIDI, and other score files into Flat",[],[],"product","\u003Cp>Every MusicXML file Flat produces is now MusicXML 4.0, whatever the version of the file it was imported from.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Swing markings are exported.\u003C\u002Fstrong> MusicXML 4.0 can express swing playback, so a swung score now carries its swing (or explicit straight) marking into other applications. Flat already read it on import; it now writes it too.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Tablature exports are valid.\u003C\u002Fstrong> String tunings were missing a required attribute, which made every tablature export fail strict validation. They now pass.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Every export is checked against the MusicXML 4.0 DTD\u003C\u002Fstrong>, including compressed \u003Ccode>.mxl\u003C\u002Fcode> files, and validation failures are reported instead of silently shipping an invalid file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Applications that only read MusicXML 3.1 open 4.0 files as before; only the swing marking is new to them.\u003C\u002Fp>","Every MusicXML file Flat produces is now MusicXML 4.0, whatever the version of the file it was imported from. - Swing markings are exported. MusicXML 4.0 can…","2026-09-01",{"category":37,"name":31,"count":365,"entries":391},[392],{"slug":393,"title":394,"locale":19,"products":395,"platforms":396,"categories":397,"kind":324,"size":374,"publicationDate":398,"modificationDate":399,"links":400,"images":406,"track":18,"bodyHtml":407,"excerpt":408,"primaryCategory":37,"ownPage":360,"date":409},"2026-09-17-api-v2-26-2-let-the-server-straighten-pages-uploaded-sideways-or-upside-down","API v2.26.2: let the server straighten pages uploaded sideways or upside down",[321],[37],[37,347],"2026-09-17T09:34:46.914Z","2026-09-17T09:36:12.438Z",{"blogPosts":401,"helpArticles":402,"releases":403},[],[],[404],{"platform":37,"version":405},"2.26.2",[],"\u003Cul>\n\u003Cli>\u003Cstrong>Automatic page rotation for OMR imports, on request.\u003C\u002Fstrong> Pages are recognised as uploaded; if your integration cannot let the user rotate pages first, turn on \u003Ccode>autoRotate\u003C\u002Fcode> and the server corrects sideways or upside-down pages before recognition. The Python, JavaScript, Ruby and PHP SDKs have been updated to this version.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fflat.io\u002Fdevelopers\u002Fdocs\u002Fapi\u002Fchangelog#v2-26-2-2026-09-17\" rel=\"referer\">Full details in the API changelog\u003C\u002Fa>\u003C\u002Fp>","- Automatic page rotation for OMR imports, on request. Pages are recognised as uploaded; if your integration cannot let the user rotate pages first, turn on…","2026-09-17",{"key":61,"year":42,"month":411,"majors":412,"areas":431},8,[413],{"slug":414,"title":415,"locale":19,"products":416,"platforms":417,"categories":418,"kind":324,"size":325,"publicationDate":419,"modificationDate":420,"links":421,"images":427,"track":18,"bodyHtml":428,"excerpt":429,"primaryCategory":37,"ownPage":360,"date":430},"2026-08-04-api-v2-25-0-control-how-long-omr-jobs-keep-your-files-abc-export","API v2.25.0: control how long OMR jobs keep your files, ABC export",[321,344],[37],[37,347,364],"2026-09-16T11:56:18.500Z","2026-09-16T16:04:29.330Z",{"blogPosts":422,"helpArticles":423,"releases":424},[],[],[425],{"platform":37,"version":426},"2.25.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>Data retention you control.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Feature detection before sign-in.\u003C\u002Fstrong> The OMR capabilities call works without an account and lists the supported recognition languages with their names.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ABC notation export\u003C\u002Fstrong> for any score revision, alongside MusicXML, MIDI and the other formats. Like MIDI, it does not carry the full engraving.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Free Record assignments\u003C\u002Fstrong> can be configured through the API in Flat for Education.\u003C\u002Fli>\n\u003Cli>Errors coming from an upstream provider (Google Classroom, for example) now carry the provider's own localised message.\u003C\u002Fli>\n\u003C\u002Ful>","- 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…","2026-08-04",[],{"key":59,"year":42,"month":433,"majors":434,"areas":458},7,[435],{"slug":436,"title":437,"locale":19,"products":438,"platforms":439,"categories":440,"kind":324,"size":325,"publicationDate":441,"modificationDate":442,"links":443,"images":454,"track":347,"bodyHtml":455,"excerpt":456,"primaryCategory":347,"ownPage":338,"date":457},"2026-07-10-omr-is-now-available-as-a-developer-api","OMR is now available as a developer API",[321,344],[37],[347,37],"2026-09-16T10:37:19.581Z","2026-09-18T10:40:13.613Z",{"blogPosts":444,"helpArticles":445,"releases":449},[],[446],{"locale":381,"url":447,"title":448},"https:\u002F\u002Fhelp.flat.io\u002Fen\u002Fmusic-notation-software\u002Fomr\u002F","Scan and import sheet music from a PDF or photo",[450,452],{"platform":37,"version":451},"2.23.0",{"platform":37,"version":453},"2.24.0",[],"\u003Cp>Flat's OMR engine is now available programmatically through the \u003Ca href=\"https:\u002F\u002Fflat.io\u002Fdevelopers\u002Fdocs\u002Fapi\u002Fomr\u002F\" rel=\"referer\">developer API\u003C\u002Fa>. 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 \u003Cstrong>MusicXML\u003C\u002Fstrong> or \u003Cstrong>MIDI\u003C\u002Fstrong>. 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.\u003C\u002Fp>\n\u003Cp>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 \u003Ca href=\"https:\u002F\u002Fflat.io\u002Fdevelopers\u002Fdocs\u002Fapi\u002Fchangelog#v2-24-0-2026-07-08\" rel=\"referer\">API changelog\u003C\u002Fa> for the details of both releases.\u003C\u002Fp>","Flat's OMR engine is now available programmatically through the developer API. Send PDFs or photos, follow recognition progress, review the detected…","2026-07-10",[],{"key":53,"year":42,"month":460,"majors":461,"areas":482},4,[462],{"slug":463,"title":464,"locale":19,"products":465,"platforms":466,"categories":467,"kind":324,"size":325,"publicationDate":470,"modificationDate":471,"links":472,"images":478,"track":18,"bodyHtml":479,"excerpt":480,"primaryCategory":37,"ownPage":360,"date":481},"2026-04-07-api-v2-22-0-15-import-formats-virtual-collections-rubrics-student-groups-and-lti","API v2.22.0: 15+ import formats, virtual collections, rubrics, student groups and LTI 1.3",[321,344],[37],[37,364,468,348,469],"library","classes","2026-09-16T11:56:22.317Z","2026-09-16T16:01:27.769Z",{"blogPosts":473,"helpArticles":474,"releases":475},[],[],[476],{"platform":37,"version":477},"2.22.0",[],"\u003Cp>The largest specification update since 2024, bringing the API into line with two years of product changes.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Import from 15+ formats.\u003C\u002Fstrong> 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 \u003Ccode>.flat\u003C\u002Fcode> files.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Virtual collections.\u003C\u002Fstrong> All scores, collaborations and likes replace the legacy folder hierarchy in the library, matching the redesigned Flat library.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flat for Education.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Unified LTI configuration\u003C\u002Fstrong> for LTI 1.1 and 1.3, including dynamic registration. The previous LTI 1.1 credentials calls are deprecated.\u003C\u002Fli>\n\u003Cli>Yearly statistics on scores, public score counts on profiles, and removal of a few long-deprecated fields.\u003C\u002Fli>\n\u003C\u002Ful>","The largest specification update since 2024, bringing the API into line with two years of product changes. - Import from 15+ formats. Guitar Pro, MuseScore,…","2026-04-07",[483],{"category":38,"name":33,"count":484,"entries":485},2,[486,505],{"slug":487,"title":488,"locale":19,"products":489,"platforms":490,"categories":491,"kind":492,"size":374,"publicationDate":493,"modificationDate":494,"links":495,"images":501,"track":18,"bodyHtml":502,"excerpt":503,"primaryCategory":38,"ownPage":360,"date":504},"2026-04-02-embed-sdk-v2-12-1-typescript-declarations-ship-at-the-right-path-again","Embed SDK v2.12.1: TypeScript declarations ship at the correct path again",[321,344],[38],[38],"fixed","2026-09-21T07:56:48.253Z","2026-09-21T08:53:58.207Z",{"blogPosts":496,"helpArticles":497,"releases":498},[],[],[499],{"platform":38,"version":500},"2.12.1",[],"\u003Cp>The TypeScript 6 upgrade wrote the declaration files to the wrong path, so editors could not resolve the SDK's types. Fixed.\u003C\u002Fp>","The TypeScript 6 upgrade wrote the declaration files to the wrong path, so editors could not resolve the SDK's types. Fixed.","2026-04-02",{"slug":506,"title":507,"locale":19,"products":508,"platforms":509,"categories":510,"kind":324,"size":374,"publicationDate":511,"modificationDate":512,"links":513,"images":519,"track":18,"bodyHtml":520,"excerpt":521,"primaryCategory":38,"ownPage":360,"date":504},"2026-04-02-embed-sdk-v2-12-0-export-the-score-as-svg","Embed SDK v2.12.0: export the score as SVG",[321,344],[38],[38],"2026-09-21T07:56:41.935Z","2026-09-21T08:55:21.053Z",{"blogPosts":514,"helpArticles":515,"releases":516},[],[],[517],{"platform":38,"version":518},"2.12.0",[],"\u003Cp>Added method \u003Ccode>getSVG\u003C\u002Fcode>.\u003C\u002Fp>","Added method getSVG.",{"key":51,"year":42,"month":523,"majors":524,"areas":525},3,[],[526],{"category":38,"name":33,"count":484,"entries":527},[528,546],{"slug":529,"title":530,"locale":19,"products":531,"platforms":532,"categories":533,"kind":324,"size":374,"publicationDate":534,"modificationDate":535,"links":536,"images":542,"track":18,"bodyHtml":543,"excerpt":544,"primaryCategory":38,"ownPage":360,"date":545},"2026-03-19-embed-sdk-v2-11-0-load-abc-notation","Embed SDK v2.11.0: load ABC notation",[321,344],[38],[38],"2026-09-21T07:56:35.400Z","2026-09-21T08:55:19.168Z",{"blogPosts":537,"helpArticles":538,"releases":539},[],[],[540],{"platform":38,"version":541},"2.11.0",[],"\u003Cp>Added method \u003Ccode>loadABC\u003C\u002Fcode>.\u003C\u002Fp>","Added method loadABC.","2026-03-19",{"slug":547,"title":548,"locale":19,"products":549,"platforms":550,"categories":551,"kind":324,"size":374,"publicationDate":552,"modificationDate":553,"links":554,"images":560,"track":18,"bodyHtml":561,"excerpt":562,"primaryCategory":38,"ownPage":360,"date":563},"2026-03-03-embed-sdk-v2-10-0-choose-the-desktop-or-mobile-editor-interface","Embed SDK v2.10.0: choose the desktop or mobile editor interface",[321,344],[38],[38],"2026-09-21T07:56:29.262Z","2026-09-21T08:55:17.411Z",{"blogPosts":555,"helpArticles":556,"releases":557},[],[],[558],{"platform":38,"version":559},"2.10.0",[],"\u003Cp>Added the \u003Ccode>editorInterface\u003C\u002Fcode> parameter to \u003Ccode>EmbedUrlParameters\u003C\u002Fcode> (\u003Ccode>'desktop'\u003C\u002Fcode> or \u003Ccode>'mobile'\u003C\u002Fcode>).\u003C\u002Fp>","Added the editorInterface parameter to EmbedUrlParameters ('desktop' or 'mobile').","2026-03-03",{"key":48,"year":42,"month":484,"majors":565,"areas":584},[566],{"slug":567,"title":568,"locale":19,"products":569,"platforms":570,"categories":571,"kind":324,"size":325,"publicationDate":572,"modificationDate":573,"links":574,"images":580,"track":18,"bodyHtml":581,"excerpt":582,"primaryCategory":38,"ownPage":360,"date":583},"2026-02-16-embed-sdk-v2-9-0-mp3-and-wav-export-with-progress","Embed SDK v2.9.0: MP3 and WAV export, with progress",[321,344],[38],[38],"2026-09-21T07:55:48.152Z","2026-09-21T08:55:15.650Z",{"blogPosts":575,"helpArticles":576,"releases":577},[],[],[578],{"platform":38,"version":579},"2.9.0",[],"\u003Cul>\n\u003Cli>Added methods \u003Ccode>getMP3\u003C\u002Fcode> and \u003Ccode>getWAV\u003C\u002Fcode> for audio export\u003C\u002Fli>\n\u003Cli>Added the \u003Ccode>exportProgress\u003C\u002Fcode> event, so a long export can show progress\u003C\u002Fli>\n\u003C\u002Ful>","- Added methods getMP3 and getWAV for audio export - Added the exportProgress event, so a long export can show progress","2026-02-16",[585],{"category":38,"name":33,"count":365,"entries":586},[587],{"slug":588,"title":589,"locale":19,"products":590,"platforms":591,"categories":592,"kind":324,"size":374,"publicationDate":593,"modificationDate":594,"links":595,"images":601,"track":18,"bodyHtml":602,"excerpt":603,"primaryCategory":38,"ownPage":360,"date":604},"2026-02-06-embed-sdk-v2-8-0-export-the-score-as-a-pdf","Embed SDK v2.8.0: export the score as a PDF",[321,344],[38],[38],"2026-09-21T07:55:41.803Z","2026-09-21T08:55:13.837Z",{"blogPosts":596,"helpArticles":597,"releases":598},[],[],[599],{"platform":38,"version":600},"2.8.0",[],"\u003Cp>Added method \u003Ccode>getPDF\u003C\u002Fcode>.\u003C\u002Fp>","Added method getPDF.","2026-02-06",{"key":96,"year":71,"month":606,"majors":607,"areas":608},12,[],[609],{"category":38,"name":33,"count":365,"entries":610},[611],{"slug":612,"title":613,"locale":19,"products":614,"platforms":615,"categories":616,"kind":324,"size":374,"publicationDate":617,"modificationDate":618,"links":619,"images":625,"track":18,"bodyHtml":626,"excerpt":627,"primaryCategory":38,"ownPage":360,"date":628},"2025-12-29-embed-sdk-v2-7-0-know-when-the-embed-is-resized","Embed SDK v2.7.0: know when the embed is resized",[321,344],[38],[38],"2026-09-21T07:55:35.408Z","2026-09-21T08:55:12.224Z",{"blogPosts":620,"helpArticles":621,"releases":622},[],[],[623],{"platform":38,"version":624},"2.7.0",[],"\u003Cp>Added the \u003Ccode>embedSize\u003C\u002Fcode> event.\u003C\u002Fp>","Added the embedSize event.","2025-12-29",{"key":92,"year":71,"month":630,"majors":631,"areas":632},10,[],[633],{"category":38,"name":33,"count":365,"entries":634},[635],{"slug":636,"title":637,"locale":19,"products":638,"platforms":639,"categories":640,"kind":324,"size":374,"publicationDate":641,"modificationDate":642,"links":643,"images":649,"track":18,"bodyHtml":650,"excerpt":651,"primaryCategory":38,"ownPage":360,"date":652},"2025-10-22-embed-sdk-v2-6-0-ten-more-interface-languages","Embed SDK v2.6.0: ten more interface languages",[321,344],[38],[38],"2026-09-21T07:55:29.524Z","2026-09-21T08:55:10.395Z",{"blogPosts":644,"helpArticles":645,"releases":646},[],[],[647],{"platform":38,"version":648},"2.6.0",[],"\u003Cp>The embed interface now supports Danish (\u003Ccode>da\u003C\u002Fcode>), Finnish (\u003Ccode>fi\u003C\u002Fcode>), Filipino (\u003Ccode>fil\u003C\u002Fcode>), Canadian French (\u003Ccode>fr-CA\u003C\u002Fcode>), Hindi (\u003Ccode>hi\u003C\u002Fcode>), Indonesian (\u003Ccode>id\u003C\u002Fcode>), Malay (\u003Ccode>ms\u003C\u002Fcode>), Norwegian Bokmål (\u003Ccode>nb\u003C\u002Fcode>), Traditional Chinese for Hong Kong (\u003Ccode>zh-HK\u003C\u002Fcode>) and Traditional Chinese for Taiwan (\u003Ccode>zh-TW\u003C\u002Fcode>).\u003C\u002Fp>","The embed interface now supports Danish (da), Finnish (fi), Filipino (fil), Canadian French (fr-CA), Hindi (hi), Indonesian (id), Malay (ms), Norwegian Bokmål…","2025-10-22",{"key":88,"year":71,"month":411,"majors":654,"areas":655},[],[656],{"category":38,"name":33,"count":365,"entries":657},[658],{"slug":659,"title":660,"locale":19,"products":661,"platforms":662,"categories":663,"kind":373,"size":374,"publicationDate":664,"modificationDate":665,"links":666,"images":672,"track":18,"bodyHtml":673,"excerpt":674,"primaryCategory":38,"ownPage":360,"date":675},"2025-08-04-embed-sdk-v2-5-0-richer-typescript-types-and-new-documentation","Embed SDK v2.5.0: richer TypeScript types and new documentation",[321,344],[38],[38],"2026-09-21T07:55:22.754Z","2026-09-21T08:55:08.624Z",{"blogPosts":667,"helpArticles":668,"releases":669},[],[],[670],{"platform":38,"version":671},"2.5.0",[],"\u003Cp>The published types cover more of the SDK surface, with new documentation alongside them.\u003C\u002Fp>","The published types cover more of the SDK surface, with new documentation alongside them.","2025-08-04",{"key":80,"year":71,"month":460,"majors":677,"areas":678},[],[679],{"category":38,"name":33,"count":365,"entries":680},[681],{"slug":682,"title":683,"locale":19,"products":684,"platforms":685,"categories":686,"kind":492,"size":374,"publicationDate":687,"modificationDate":688,"links":689,"images":695,"track":18,"bodyHtml":696,"excerpt":697,"primaryCategory":38,"ownPage":360,"date":698},"2025-04-10-embed-sdk-v2-4-1-mode-is-back-in-the-url-parameter-types","Embed SDK v2.4.1: mode is back in the URL parameter types",[321,344],[38],[38],"2026-09-21T07:55:15.535Z","2026-09-21T08:55:06.800Z",{"blogPosts":690,"helpArticles":691,"releases":692},[],[],[693],{"platform":38,"version":694},"2.4.1",[],"\u003Cp>Added the missing \u003Ccode>mode\u003C\u002Fcode> property to the \u003Ccode>EmbedUrlParameters\u003C\u002Fcode> TypeScript interface.\u003C\u002Fp>","Added the missing mode property to the EmbedUrlParameters TypeScript interface.","2025-04-10",{"key":78,"year":71,"month":523,"majors":700,"areas":701},[],[702],{"category":38,"name":33,"count":365,"entries":703},[704],{"slug":705,"title":706,"locale":19,"products":707,"platforms":708,"categories":709,"kind":324,"size":374,"publicationDate":710,"modificationDate":711,"links":712,"images":718,"track":18,"bodyHtml":719,"excerpt":720,"primaryCategory":38,"ownPage":360,"date":721},"2025-03-10-embed-sdk-v2-4-0-load-a-midi-file","Embed SDK v2.4.0: load a MIDI file",[321,344],[38],[38],"2026-09-21T07:55:09.076Z","2026-09-21T08:55:04.438Z",{"blogPosts":713,"helpArticles":714,"releases":715},[],[],[716],{"platform":38,"version":717},"2.4.0",[],"\u003Cp>Added method \u003Ccode>loadMIDI\u003C\u002Fcode>.\u003C\u002Fp>","Added method loadMIDI.","2025-03-10",{"key":119,"year":98,"month":630,"majors":723,"areas":742},[724],{"slug":725,"title":726,"locale":19,"products":727,"platforms":728,"categories":729,"kind":324,"size":325,"publicationDate":730,"modificationDate":731,"links":732,"images":738,"track":18,"bodyHtml":739,"excerpt":740,"primaryCategory":37,"ownPage":360,"date":741},"2024-10-18-api-v2-21-0-public-community-profiles-and-richer-resource-library-filters","API v2.21.0: public community profiles and richer resource library filters",[321,344],[37],[37,468,469],"2026-09-16T11:56:24.149Z","2026-09-16T16:01:44.449Z",{"blogPosts":733,"helpArticles":734,"releases":735},[],[],[736],{"platform":37,"version":737},"2.21.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>User score listings are public profiles.\u003C\u002Fstrong> Listing a user's scores now returns only their public scores, with new pagination and sorting, the change announced in 2020.\u003C\u002Fli>\n\u003Cli>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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flat for Education.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003C\u002Ful>","- 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…","2024-10-18",[],{"key":105,"year":98,"month":523,"majors":744,"areas":763},[745],{"slug":746,"title":747,"locale":19,"products":748,"platforms":749,"categories":750,"kind":324,"size":325,"publicationDate":751,"modificationDate":752,"links":753,"images":759,"track":18,"bodyHtml":760,"excerpt":761,"primaryCategory":37,"ownPage":360,"date":762},"2024-03-08-api-v2-20-0-collaborator-types-graded-submissions-and-reusable-invitations","API v2.20.0: collaborator types, graded submissions and reusable invitations",[321,344],[37],[37,468,348],"2026-09-16T11:56:25.889Z","2026-09-16T16:02:02.667Z",{"blogPosts":754,"helpArticles":755,"releases":756},[],[],[757],{"platform":37,"version":758},"2.20.0",[],"\u003Cul>\n\u003Cli>Paginated likes on user profiles, and the product a user is on in their account details.\u003C\u002Fli>\n\u003Cli>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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flat for Education.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003C\u002Ful>","- 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…","2024-03-08",[],{"key":101,"year":98,"month":365,"majors":765,"areas":766},[],[767],{"category":38,"name":33,"count":365,"entries":768},[769],{"slug":770,"title":771,"locale":19,"products":772,"platforms":773,"categories":774,"kind":324,"size":374,"publicationDate":775,"modificationDate":776,"links":777,"images":783,"track":18,"bodyHtml":784,"excerpt":785,"primaryCategory":38,"ownPage":360,"date":786},"2024-01-03-embed-sdk-v2-3-0-lazy-load-the-embed-iframe","Embed SDK v2.3.0: lazy-load the embed iframe",[321,344],[38],[38],"2026-09-21T07:55:03.050Z","2026-09-21T08:55:02.718Z",{"blogPosts":778,"helpArticles":779,"releases":780},[],[],[781],{"platform":38,"version":782},"2.3.0",[],"\u003Cp>The new \u003Ccode>lazy\u003C\u002Fcode> option adds \u003Ccode>loading=&quot;lazy&quot;\u003C\u002Fcode> to the created iframe.\u003C\u002Fp>","The new lazy option adds loading=\"lazy\" to the created iframe.","2024-01-03",{"key":148,"year":125,"month":788,"majors":789,"areas":790},11,[],[791],{"category":38,"name":33,"count":365,"entries":792},[793],{"slug":794,"title":795,"locale":19,"products":796,"platforms":797,"categories":798,"kind":324,"size":374,"publicationDate":799,"modificationDate":800,"links":801,"images":807,"track":18,"bodyHtml":808,"excerpt":809,"primaryCategory":38,"ownPage":360,"date":810},"2023-11-24-embed-sdk-v2-2-0-identify-the-reader-with-userid","Embed SDK v2.2.0: identify the reader with userId",[321,344],[38],[38],"2026-09-21T07:54:56.649Z","2026-09-21T08:54:53.676Z",{"blogPosts":802,"helpArticles":803,"releases":804},[],[],[805],{"platform":38,"version":806},"2.2.0",[],"\u003Cp>Added the embed parameter \u003Ccode>userId\u003C\u002Fcode>.\u003C\u002Fp>","Added the embed parameter userId.","2023-11-24",{"key":146,"year":125,"month":630,"majors":812,"areas":831},[813],{"slug":814,"title":815,"locale":19,"products":816,"platforms":817,"categories":818,"kind":324,"size":325,"publicationDate":819,"modificationDate":820,"links":821,"images":827,"track":18,"bodyHtml":828,"excerpt":829,"primaryCategory":38,"ownPage":360,"date":830},"2023-10-02-embed-sdk-v2-1-0-inspect-parts-voices-and-notes-and-mute-the-audio","Embed SDK v2.1.0: inspect parts, voices and notes, and mute the audio",[321,344],[38],[38],"2026-09-21T07:54:50.377Z","2026-09-21T08:54:51.967Z",{"blogPosts":822,"helpArticles":823,"releases":824},[],[],[825],{"platform":38,"version":826},"2.1.0",[],"\u003Cp>Read the structure of the loaded score from your code.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Parts and voices: \u003Ccode>getNbParts\u003C\u002Fcode>, \u003Ccode>getPartsUuids\u003C\u002Fcode>, \u003Ccode>getMeasureVoicesUuids\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Notes: \u003Ccode>getMeasureNbNotes\u003C\u002Fcode>, \u003Ccode>getNoteData\u003C\u002Fcode>, \u003Ccode>playbackPositionToNoteIdx\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>New URL parameter \u003Ccode>noAudio\u003C\u002Fcode> disables audio playback\u003C\u002Fli>\n\u003Cli>Fixed \u003Ccode>setMasterVolume\u003C\u002Fcode> calling the wrong underlying method\u003C\u002Fli>\n\u003C\u002Ful>","Read the structure of the loaded score from your code. - Parts and voices: getNbParts, getPartsUuids, getMeasureVoicesUuids - Notes: getMeasureNbNotes,…","2023-10-02",[],{"key":144,"year":125,"month":315,"majors":833,"areas":853},[834],{"slug":835,"title":836,"locale":19,"products":837,"platforms":838,"categories":839,"kind":840,"size":325,"publicationDate":841,"modificationDate":842,"links":843,"images":849,"track":18,"bodyHtml":850,"excerpt":851,"primaryCategory":38,"ownPage":360,"date":852},"2023-09-27-embed-sdk-v2-0-0-typescript-types-es-and-umd-builds-jquery-dropped","Embed SDK v2.0.0: TypeScript types, ES and UMD builds, jQuery dropped",[321,344],[38],[38],"deprecated","2026-09-21T07:54:03.751Z","2026-09-21T08:54:48.567Z",{"blogPosts":844,"helpArticles":845,"releases":846},[],[],[847],{"platform":38,"version":848},"2.0.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>Removed support for jQuery in the constructor\u003C\u002Fstrong> — pass a DOM element or its id instead\u003C\u002Fli>\n\u003Cli>The published npm module ships TypeScript types\u003C\u002Fli>\n\u003Cli>Separate ES and UMD builds\u003C\u002Fli>\n\u003C\u002Ful>","- 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…","2023-09-27",[854],{"category":38,"name":33,"count":365,"entries":855},[856],{"slug":857,"title":858,"locale":19,"products":859,"platforms":860,"categories":861,"kind":492,"size":374,"publicationDate":862,"modificationDate":863,"links":864,"images":870,"track":18,"bodyHtml":871,"excerpt":872,"primaryCategory":38,"ownPage":360,"date":852},"2023-09-27-embed-sdk-v2-0-1-package-exports-work-with-webpack-5","Embed SDK v2.0.1: package exports work with Webpack 5",[321,344],[38],[38],"2026-09-21T07:54:10.411Z","2026-09-21T08:54:50.148Z",{"blogPosts":865,"helpArticles":866,"releases":867},[],[],[868],{"platform":38,"version":869},"2.0.1",[],"\u003Cp>Fixed the package \u003Ccode>exports\u003C\u002Fcode> map, which Webpack 5 could not resolve.\u003C\u002Fp>","Fixed the package exports map, which Webpack 5 could not resolve.",{"key":142,"year":125,"month":411,"majors":874,"areas":893},[875],{"slug":876,"title":877,"locale":19,"products":878,"platforms":879,"categories":880,"kind":324,"size":325,"publicationDate":881,"modificationDate":882,"links":883,"images":889,"track":18,"bodyHtml":890,"excerpt":891,"primaryCategory":37,"ownPage":360,"date":892},"2023-08-25-api-v2-19-0-lti-links-from-resource-library-items-higher-grade-limits-unsettable","API v2.19.0: LTI links from resource library items, higher grade limits, unsettable score metadata",[321,344],[37],[37,469,348],"2026-09-16T11:56:27.674Z","2026-09-16T16:02:12.045Z",{"blogPosts":884,"helpArticles":885,"releases":886},[],[],[887],{"platform":37,"version":888},"2.19.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>Create LTI links\u003C\u002Fstrong> from Flat for Education resource library items, to place them in an LMS course directly.\u003C\u002Fli>\n\u003Cli>The maximum grade on an assignment goes from 100 to 10,000 points.\u003C\u002Fli>\n\u003Cli>Score metadata (subtitle, composer, lyricist, arranger, description, licence…) can now be cleared through the API, not only set.\u003C\u002Fli>\n\u003C\u002Ful>","- Create LTI links from Flat for Education resource library items, to place them in an LMS course directly. - The maximum grade on an assignment goes from 100…","2023-08-25",[],{"key":136,"year":125,"month":895,"majors":896,"areas":915},5,[897],{"slug":898,"title":899,"locale":19,"products":900,"platforms":901,"categories":902,"kind":324,"size":325,"publicationDate":903,"modificationDate":904,"links":905,"images":911,"track":18,"bodyHtml":912,"excerpt":913,"primaryCategory":37,"ownPage":360,"date":914},"2023-05-05-api-v2-18-0-the-resource-library-api-in-beta","API v2.18.0: the Resource Library API, in beta",[321,344],[37],[37,469,348],"2026-09-16T11:56:29.451Z","2026-09-16T16:02:30.120Z",{"blogPosts":906,"helpArticles":907,"releases":908},[],[],[909],{"platform":37,"version":910},"2.18.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>Resource Library API (beta).\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Test students.\u003C\u002Fstrong> Create testing student accounts in a class to try assignments as a student would.\u003C\u002Fli>\n\u003Cli>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.\u003C\u002Fli>\n\u003Cli>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.\u003C\u002Fli>\n\u003Cli>Score revisions return their start and end dates; score builders can enable quarter tones; copies can keep the original title.\u003C\u002Fli>\n\u003C\u002Ful>","- Resource Library API (beta). Browse and manage Flat for Education resource libraries, with two new OAuth2 scopes for full and read-only access. Assignments…","2023-05-05",[],{"key":134,"year":125,"month":460,"majors":917,"areas":918},[],[919],{"category":38,"name":33,"count":365,"entries":920},[921],{"slug":922,"title":923,"locale":19,"products":924,"platforms":925,"categories":926,"kind":373,"size":374,"publicationDate":927,"modificationDate":928,"links":929,"images":935,"track":18,"bodyHtml":936,"excerpt":937,"primaryCategory":38,"ownPage":360,"date":938},"2023-04-04-embed-sdk-v1-5-1-autoplay-allowed-on-the-created-iframe","Embed SDK v1.5.1: autoplay allowed on the created iframe",[321,344],[38],[38],"2026-09-21T07:53:57.044Z","2026-09-21T08:54:46.698Z",{"blogPosts":930,"helpArticles":931,"releases":932},[],[],[933],{"platform":38,"version":934},"1.5.1",[],"\u003Cp>The created iframe carries \u003Ccode>allow: autoplay\u003C\u002Fcode>.\u003C\u002Fp>","The created iframe carries allow: autoplay.","2023-04-04",{"key":132,"year":125,"month":523,"majors":940,"areas":959},[941],{"slug":942,"title":943,"locale":19,"products":944,"platforms":945,"categories":946,"kind":324,"size":325,"publicationDate":947,"modificationDate":948,"links":949,"images":955,"track":18,"bodyHtml":956,"excerpt":957,"primaryCategory":38,"ownPage":360,"date":958},"2023-03-08-embed-sdk-v1-5-0-navigate-measures-and-drive-the-metronome-and-playback-speed","Embed SDK v1.5.0: navigate bars, and control the metronome and playback speed",[321,344],[38],[38],"2026-09-21T07:53:49.861Z","2026-09-21T08:54:44.630Z",{"blogPosts":950,"helpArticles":951,"releases":952},[],[],[953],{"platform":38,"version":954},"1.5.0",[],"\u003Cul>\n\u003Cli>Bars: \u003Ccode>getNbMeasures\u003C\u002Fcode>, \u003Ccode>getMeasuresUuids\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Navigation: \u003Ccode>goLeft\u003C\u002Fcode>, \u003Ccode>goRight\u003C\u002Fcode>, \u003Ccode>scrollToCursor\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Metronome: \u003Ccode>getMetronomeMode\u003C\u002Fcode>, \u003Ccode>setMetronomeMode\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Playback speed: \u003Ccode>getPlaybackSpeed\u003C\u002Fcode>, \u003Ccode>setPlaybackSpeed\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>","- Bars: getNbMeasures, getMeasuresUuids - Navigation: goLeft, goRight, scrollToCursor - Metronome: getMetronomeMode, setMetronomeMode - Playback speed:…","2023-03-08",[],{"key":161,"year":152,"month":460,"majors":961,"areas":962},[],[963],{"category":38,"name":33,"count":365,"entries":964},[965],{"slug":966,"title":967,"locale":19,"products":968,"platforms":969,"categories":970,"kind":492,"size":374,"publicationDate":971,"modificationDate":972,"links":973,"images":979,"track":18,"bodyHtml":980,"excerpt":981,"primaryCategory":38,"ownPage":360,"date":982},"2022-04-22-embed-sdk-v1-4-1-works-with-vue-3","Embed SDK v1.4.1: works with Vue 3",[321,344],[38],[38],"2026-09-21T07:53:42.897Z","2026-09-21T08:54:42.872Z",{"blogPosts":974,"helpArticles":975,"releases":976},[],[],[977],{"platform":38,"version":978},"1.4.1",[],"\u003Cp>Fixed compatibility with Vue 3.\u003C\u002Fp>","Fixed compatibility with Vue 3.","2022-04-22",{"key":159,"year":152,"month":523,"majors":984,"areas":985},[],[986],{"category":37,"name":31,"count":365,"entries":987},[988],{"slug":989,"title":990,"locale":19,"products":991,"platforms":992,"categories":993,"kind":324,"size":374,"publicationDate":994,"modificationDate":995,"links":996,"images":1002,"track":18,"bodyHtml":1003,"excerpt":1004,"primaryCategory":37,"ownPage":360,"date":1005},"2022-03-23-api-v2-17-0-scores-created-by-an-app-land-in-a-dedicated-collection","API v2.17.0: scores created by an app go into a dedicated collection",[321],[37],[37,468],"2026-09-16T11:56:31.592Z","2026-09-16T16:02:39.041Z",{"blogPosts":997,"helpArticles":998,"releases":999},[],[],[1000],{"platform":37,"version":1001},"2.17.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>App collections.\u003C\u002Fstrong> When a third-party app creates scores, Flat now files them in a collection dedicated to that app, created automatically in the user's account. The collection has its own alias so apps can list and manage their scores without scanning the whole library.\u003C\u002Fli>\n\u003C\u002Ful>","- App collections. When a third-party app creates scores, Flat now files them in a collection dedicated to that app, created automatically in the user's…","2022-03-23",{"key":204,"year":179,"month":606,"majors":1007,"areas":1008},[],[1009],{"category":37,"name":31,"count":365,"entries":1010},[1011],{"slug":1012,"title":1013,"locale":19,"products":1014,"platforms":1015,"categories":1016,"kind":324,"size":374,"publicationDate":1017,"modificationDate":1018,"links":1019,"images":1025,"track":18,"bodyHtml":1026,"excerpt":1027,"primaryCategory":37,"ownPage":360,"date":1028},"2021-12-11-api-v2-16-0-asynchronous-export-tasks-for-long-running-exports","API v2.16.0: asynchronous export tasks for long-running exports",[321],[37],[37,364],"2026-09-16T11:56:38.111Z","2026-09-16T16:02:45.586Z",{"blogPosts":1020,"helpArticles":1021,"releases":1022},[],[],[1023],{"platform":37,"version":1024},"2.16.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>Export tasks.\u003C\u002Fstrong> Start an export (audio, video, PDF…) as a background task and poll its progress instead of holding the request open, making long-running exports reliable for large scores.\u003C\u002Fli>\n\u003C\u002Ful>","- Export tasks. Start an export (audio, video, PDF…) as a background task and poll its progress instead of holding the request open, making long-running…","2021-12-11",{"key":202,"year":179,"month":788,"majors":1030,"areas":1050},[1031],{"slug":1032,"title":1033,"locale":19,"products":1034,"platforms":1035,"categories":1036,"kind":324,"size":325,"publicationDate":1038,"modificationDate":1039,"links":1040,"images":1046,"track":18,"bodyHtml":1047,"excerpt":1048,"primaryCategory":37,"ownPage":360,"date":1049},"2021-11-10-api-v2-15-0-sign-in-links-and-delegated-tokens-for-organization-admins","API v2.15.0: sign-in links and delegated tokens for organisation admins",[321,344],[37],[37,1037],"accounts","2026-09-16T11:56:39.852Z","2026-09-16T16:02:57.486Z",{"blogPosts":1041,"helpArticles":1042,"releases":1043},[],[],[1044],{"platform":37,"version":1045},"2.15.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>Sign-in links and delegated access tokens.\u003C\u002Fstrong> Flat for Education admins can create a sign-in link for any user in their organisation, or an access token acting on that user's behalf: the basis for custom portals and single sign-on integrations.\u003C\u002Fli>\n\u003Cli>Japanese in hiragana (\u003Ccode>ja-HIRA\u003C\u002Fcode>) joins the supported locales; public comments expose their moderation state.\u003C\u002Fli>\n\u003Cli>Audio exports return the MP3 set as the default track when one exists. The option to request only cached exports was removed, since audio exports are now always served from cache.\u003C\u002Fli>\n\u003C\u002Ful>","- Sign-in links and delegated access tokens. Flat for Education admins can create a sign-in link for any user in their organisation, or an access token acting…","2021-11-10",[],{"key":200,"year":179,"month":630,"majors":1052,"areas":1073},[1053],{"slug":1054,"title":1055,"locale":19,"products":1056,"platforms":1057,"categories":1058,"kind":324,"size":325,"publicationDate":1061,"modificationDate":1062,"links":1063,"images":1069,"track":18,"bodyHtml":1070,"excerpt":1071,"primaryCategory":37,"ownPage":360,"date":1072},"2021-10-04-api-v2-14-0-create-blank-scores-from-a-list-of-instruments","API v2.14.0: create blank scores from a list of instruments",[321,344],[37],[37,1059,1060],"editor","worksheets","2026-09-16T11:56:41.762Z","2026-09-16T16:03:07.286Z",{"blogPosts":1064,"helpArticles":1065,"releases":1066},[],[],[1067],{"platform":37,"version":1068},"2.14.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>Score builder.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flat for Education.\u003C\u002Fstrong> Organisation users can be created with a role; worksheets can shuffle their exercises; student submissions list the exercises they contain.\u003C\u002Fli>\n\u003C\u002Ful>","- Score builder. Create a blank score without importing a MusicXML file: provide a list of instruments and, optionally, the time signature, key signature,…","2021-10-04",[],{"key":194,"year":179,"month":433,"majors":1075,"areas":1095},[1076],{"slug":1077,"title":1078,"locale":19,"products":1079,"platforms":1080,"categories":1081,"kind":324,"size":325,"publicationDate":1083,"modificationDate":1084,"links":1085,"images":1091,"track":18,"bodyHtml":1092,"excerpt":1093,"primaryCategory":37,"ownPage":360,"date":1094},"2021-07-19-api-v2-13-0-synced-playback-tracks-microsoft-teams-details-scheduled-assignment","API v2.13.0: synchronised playback tracks, Microsoft Teams details, scheduled assignment copies",[321,344],[37],[37,1082,469],"playback","2026-09-16T11:56:43.681Z","2026-09-16T16:03:21.157Z",{"blogPosts":1086,"helpArticles":1087,"releases":1088},[],[],[1089],{"platform":37,"version":1090},"2.13.0",[],"\u003Cul>\n\u003Cli>\u003Cstrong>Playback tracks.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flat for Education.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>Profiles gain a cover picture, and the current user's id can be fetched on its own.\u003C\u002Fli>\n\u003C\u002Ful>","- Playback tracks. List the tracks Flat generates and synchronises automatically (playback as an MP3), fetch the synchronisation points of the latest playback…","2021-07-19",[],{"key":188,"year":179,"month":460,"majors":1097,"areas":1116},[1098],{"slug":1099,"title":1100,"locale":19,"products":1101,"platforms":1102,"categories":1103,"kind":324,"size":325,"publicationDate":1104,"modificationDate":1105,"links":1106,"images":1112,"track":18,"bodyHtml":1113,"excerpt":1114,"primaryCategory":38,"ownPage":360,"date":1115},"2021-04-28-embed-sdk-v1-4-0-private-scores-by-sharing-key-and-audio-tracks-from-code","Embed SDK v1.4.0: private scores by sharing key, and audio tracks from code",[321,344],[38],[38],"2026-09-21T07:53:36.608Z","2026-09-21T08:54:40.643Z",{"blogPosts":1107,"helpArticles":1108,"releases":1109},[],[],[1110],{"platform":38,"version":1111},"1.4.0",[],"\u003Cul>\n\u003Cli>\u003Ccode>loadFlatScore\u003C\u002Fcode> accepts a \u003Ccode>sharingKey\u003C\u002Fcode>, so a privately shared score can be loaded\u003C\u002Fli>\n\u003Cli>Added \u003Ccode>setTrack\u003C\u002Fcode>, \u003Ccode>useTrack\u003C\u002Fcode> and \u003Ccode>seekTrackTo\u003C\u002Fcode> to set the audio track dynamically\u003C\u002Fli>\n\u003C\u002Ful>","- loadFlatScore accepts a sharingKey, so a privately shared score can be loaded - Added setTrack, useTrack and seekTrackTo to set the audio track dynamically","2021-04-28",[],{"key":184,"year":179,"month":484,"majors":1118,"areas":1136},[1119],{"slug":1120,"title":1121,"locale":19,"products":1122,"platforms":1123,"categories":1124,"kind":324,"size":325,"publicationDate":1125,"modificationDate":1126,"links":1127,"images":1132,"track":18,"bodyHtml":1133,"excerpt":1134,"primaryCategory":37,"ownPage":360,"date":1135},"2021-02-18-api-v2-12-0-export-grades-as-csv-or-excel-assignment-types-and-covers","API v2.12.0: export grades as CSV or Excel, assignment types and covers",[321,344],[37],[37,348],"2026-09-16T11:56:45.523Z","2026-09-16T16:03:30.700Z",{"blogPosts":1128,"helpArticles":1129,"releases":1130},[],[],[1131],{"platform":37,"version":518},[],"\u003Cul>\n\u003Cli>\u003Cstrong>Grade exports.\u003C\u002Fstrong> Download an assignment's grades as a CSV or Excel file.\u003C\u002Fli>\n\u003Cli>Assignments include their type and a cover image; copying an assignment can overwrite an existing draft with another assignment's content.\u003C\u002Fli>\n\u003Cli>Collaborators show whether they are still a pending invitation.\u003C\u002Fli>\n\u003C\u002Ful>","- 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…","2021-02-18",[],{"key":227,"year":206,"month":630,"majors":1138,"areas":1156},[1139],{"slug":1140,"title":1141,"locale":19,"products":1142,"platforms":1143,"categories":1144,"kind":324,"size":325,"publicationDate":1145,"modificationDate":1146,"links":1147,"images":1152,"track":18,"bodyHtml":1153,"excerpt":1154,"primaryCategory":37,"ownPage":360,"date":1155},"2020-10-26-api-v2-11-0-grading-submission-comments-and-richer-assignment-options","API v2.11.0: grading, submission comments and richer assignment options",[321,344],[37],[37,348,469],"2026-09-16T11:56:47.220Z","2026-09-16T16:03:48.195Z",{"blogPosts":1148,"helpArticles":1149,"releases":1150},[],[],[1151],{"platform":37,"version":541},[],"\u003Cul>\n\u003Cli>\u003Cstrong>Grading through the API.\u003C\u002Fstrong> Set draft and final grades, return a submission to a student, and read computed comment counters; the maximum points are stored with the grade.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Submission comments.\u003C\u002Fstrong> Create, list, update and delete comments on a submission.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Assignment options.\u003C\u002Fstrong> Toolsets, a playback limit, maximum points, Google Classroom topics, assigning specific students, locked templates, and details of LTI, Canvas and MusicFirst assignments.\u003C\u002Fli>\n\u003Cli>Admins can edit a managed account's username, name and email; user listings can be filtered by active licence.\u003C\u002Fli>\n\u003Cli>The old \u003Ccode>studentComment\u003C\u002Fcode> and \u003Ccode>returnFeedback\u003C\u002Fcode> submission parameters were removed in favor of the new grading calls.\u003C\u002Fli>\n\u003C\u002Ful>","- 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…","2020-10-26",[],{"key":219,"year":206,"month":1158,"majors":1159,"areas":1177},6,[1160],{"slug":1161,"title":1162,"locale":19,"products":1163,"platforms":1164,"categories":1165,"kind":324,"size":325,"publicationDate":1166,"modificationDate":1167,"links":1168,"images":1173,"track":18,"bodyHtml":1174,"excerpt":1175,"primaryCategory":37,"ownPage":360,"date":1176},"2020-06-03-api-v2-10-0-archive-assignments-count-and-filter-organization-users","API v2.10.0: archive assignments, count and filter organisation users",[321,344],[37],[37,348,469],"2026-09-16T11:56:48.999Z","2026-09-16T16:04:00.984Z",{"blogPosts":1169,"helpArticles":1170,"releases":1171},[],[],[1172],{"platform":37,"version":559},[],"\u003Cul>\n\u003Cli>\u003Cstrong>Archive and unarchive assignments\u003C\u002Fstrong>, and read an assignment's main type (new score, template or shared writing).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Organisation users.\u003C\u002Fstrong> 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).\u003C\u002Fli>\n\u003Cli>Score details list the audio samples used by playback, with a normalised instrument list that no longer depends on the samples.\u003C\u002Fli>\n\u003C\u002Ful>","- Archive and unarchive assignments, and read an assignment's main type (new score, template or shared writing). - Organisation users. Create accounts with a…","2020-06-03",[],{"key":211,"year":206,"month":484,"majors":1179,"areas":1198},[1180],{"slug":1181,"title":1182,"locale":19,"products":1183,"platforms":1184,"categories":1185,"kind":324,"size":325,"publicationDate":1186,"modificationDate":1187,"links":1188,"images":1194,"track":18,"bodyHtml":1195,"excerpt":1196,"primaryCategory":38,"ownPage":360,"date":1197},"2020-02-24-embed-sdk-v1-3-0-mix-the-playback-and-inspect-notes-and-measures","Embed SDK v1.3.0: mix playback, and inspect notes and bars",[321,344],[38],[38],"2026-09-21T07:53:29.730Z","2026-09-21T08:54:39.030Z",{"blogPosts":1189,"helpArticles":1190,"releases":1191},[],[],[1192],{"platform":38,"version":1193},"1.3.0",[],"\u003Cp>Control the mix from your code, and read what is under the cursor.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Volume and mute: \u003Ccode>getMasterVolume\u003C\u002Fcode>, \u003Ccode>setMasterVolume\u003C\u002Fcode>, \u003Ccode>getPartVolume\u003C\u002Fcode>, \u003Ccode>setPartVolume\u003C\u002Fcode>, \u003Ccode>mutePart\u003C\u002Fcode>, \u003Ccode>unmutePart\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Solo and reverb: \u003Ccode>setPartSoloMode\u003C\u002Fcode>, \u003Ccode>unsetPartSoloMode\u003C\u002Fcode>, \u003Ccode>getPartSoloMode\u003C\u002Fcode>, \u003Ccode>getPartReverb\u003C\u002Fcode>, \u003Ccode>setPartReverb\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Inspection: \u003Ccode>getMeasureDetails\u003C\u002Fcode>, \u003Ccode>getNoteDetails\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Added events: \u003Ccode>noteDetails\u003C\u002Fcode>, \u003Ccode>measureDetails\u003C\u002Fcode>, \u003Ccode>cursorContext\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>","Control the mix from your code, and read what is under the cursor. - Volume and mute: getMasterVolume, setMasterVolume, getPartVolume, setPartVolume, mutePart,…","2020-02-24",[],{"key":209,"year":206,"month":365,"majors":1200,"areas":1218},[1201],{"slug":1202,"title":1203,"locale":19,"products":1204,"platforms":1205,"categories":1206,"kind":324,"size":325,"publicationDate":1207,"modificationDate":1208,"links":1209,"images":1214,"track":18,"bodyHtml":1215,"excerpt":1216,"primaryCategory":37,"ownPage":360,"date":1217},"2020-01-10-api-v2-9-0-openapi-3-specification-google-drive-attachments-arranger-and-plays","API v2.9.0: OpenAPI 3 specification, Google Drive attachments, arranger and plays",[321,344],[37],[37,348],"2026-09-16T11:56:50.656Z","2026-09-16T16:04:13.181Z",{"blogPosts":1210,"helpArticles":1211,"releases":1212},[],[],[1213],{"platform":37,"version":579},[],"\u003Cul>\n\u003Cli>\u003Cstrong>The specification moves to OpenAPI 3.0.\u003C\u002Fstrong> Previous versions were described in OpenAPI 2 (Swagger).\u003C\u002Fli>\n\u003Cli>Scores expose an arranger and their play statistics; a deletion can be scheduled to run shortly instead of sitting in the bin.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flat for Education.\u003C\u002Fstrong> Assignment attachments can be Google Drive files, classes carry their Microsoft Teams details, and education accounts expose a first and last name.\u003C\u002Fli>\n\u003C\u002Ful>","- The specification moves to OpenAPI 3.0. Previous versions were described in OpenAPI 2 (Swagger). - Scores expose an arranger and their play statistics; a…","2020-01-10",[1219],{"category":38,"name":33,"count":365,"entries":1220},[1221],{"slug":1222,"title":1223,"locale":19,"products":1224,"platforms":1225,"categories":1226,"kind":324,"size":374,"publicationDate":1227,"modificationDate":1228,"links":1229,"images":1235,"track":18,"bodyHtml":1236,"excerpt":1237,"primaryCategory":38,"ownPage":360,"date":1238},"2020-01-07-embed-sdk-v1-2-0-read-and-choose-the-displayed-parts","Embed SDK v1.2.0: read and choose the displayed parts",[321,344],[38],[38],"2026-09-21T07:53:21.973Z","2026-09-21T08:54:37.418Z",{"blogPosts":1230,"helpArticles":1231,"releases":1232},[],[],[1233],{"platform":38,"version":1234},"1.2.0",[],"\u003Cp>Added methods \u003Ccode>getParts\u003C\u002Fcode>, \u003Ccode>getDisplayedParts\u003C\u002Fcode> and \u003Ccode>setDisplayedParts\u003C\u002Fcode>.\u003C\u002Fp>","Added methods getParts, getDisplayedParts and setDisplayedParts.","2020-01-07",{"key":244,"year":233,"month":895,"majors":1240,"areas":1241},[],[1242],{"category":38,"name":33,"count":484,"entries":1243},[1244,1262],{"slug":1245,"title":1246,"locale":19,"products":1247,"platforms":1248,"categories":1249,"kind":324,"size":374,"publicationDate":1250,"modificationDate":1251,"links":1252,"images":1258,"track":18,"bodyHtml":1259,"excerpt":1260,"primaryCategory":38,"ownPage":360,"date":1261},"2019-05-13-embed-sdk-v1-1-0-midi-output","Embed SDK v1.1.0: MIDI output",[321,344],[38],[38],"2026-09-21T07:53:15.616Z","2026-09-21T08:54:35.690Z",{"blogPosts":1253,"helpArticles":1254,"releases":1255},[],[],[1256],{"platform":38,"version":1257},"1.1.0",[],"\u003Cp>Support for MIDI output.\u003C\u002Fp>","Support for MIDI output.","2019-05-13",{"slug":1263,"title":1264,"locale":19,"products":1265,"platforms":1266,"categories":1267,"kind":373,"size":374,"publicationDate":1268,"modificationDate":1269,"links":1270,"images":1276,"track":18,"bodyHtml":1277,"excerpt":1278,"primaryCategory":38,"ownPage":360,"date":1279},"2019-05-05-embed-sdk-v1-0-0-served-from-our-own-cdn","Embed SDK v1.0.0: served from our own CDN",[321,344],[38],[38],"2026-09-21T07:53:09.515Z","2026-09-21T08:54:26.564Z",{"blogPosts":1271,"helpArticles":1272,"releases":1273},[],[],[1274],{"platform":38,"version":1275},"1.0.0",[],"\u003Cp>The SDK is hosted on our CDN, at \u003Ccode>https:\u002F\u002Fprod.flat-cdn.com\u002Fembed-js\u002F&lt;version&gt;\u002Fembed.min.js\u003C\u002Fcode>.\u003C\u002Fp>","The SDK is hosted on our CDN, at https:\u002F\u002Fprod.flat-cdn.com\u002Fembed-js\u002F\u003Cversion\u002Fembed.min.js.","2019-05-05",{"key":242,"year":233,"month":460,"majors":1281,"areas":1299},[1282],{"slug":1283,"title":1284,"locale":19,"products":1285,"platforms":1286,"categories":1287,"kind":324,"size":325,"publicationDate":1288,"modificationDate":1289,"links":1290,"images":1295,"track":18,"bodyHtml":1296,"excerpt":1297,"primaryCategory":37,"ownPage":360,"date":1298},"2019-04-27-api-v2-8-0-real-time-metadata-updates-submission-states-turkish","API v2.8.0: real-time metadata updates, submission states, Turkish",[321,344],[37],[37,468,348],"2026-09-16T11:56:52.379Z","2026-09-16T16:07:09.517Z",{"blogPosts":1291,"helpArticles":1292,"releases":1293},[],[],[1294],{"platform":37,"version":600},[],"\u003Cul>\n\u003Cli>\u003Cstrong>Metadata edits reach the editor live.\u003C\u002Fstrong> 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).\u003C\u002Fli>\n\u003Cli>Education submissions expose their state (created, turned in, returned); revision metadata returns the last modification event.\u003C\u002Fli>\n\u003Cli>Turkish joins the supported locales; public profiles say whether an account belongs to the Flat team.\u003C\u002Fli>\n\u003C\u002Ful>","- 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…","2019-04-27",[],{"key":283,"year":260,"month":788,"majors":1301,"areas":1338},[1302,1320],{"slug":1303,"title":1304,"locale":19,"products":1305,"platforms":1306,"categories":1307,"kind":840,"size":325,"publicationDate":1308,"modificationDate":1309,"links":1310,"images":1316,"track":18,"bodyHtml":1317,"excerpt":1318,"primaryCategory":38,"ownPage":360,"date":1319},"2018-11-29-embed-sdk-v0-11-0-midi-export-and-a-new-musicxml-return-format","Embed SDK v0.11.0: MIDI export and a new MusicXML return format",[321,344],[38],[38],"2026-09-21T07:52:55.665Z","2026-09-21T08:54:24.927Z",{"blogPosts":1311,"helpArticles":1312,"releases":1313},[],[],[1314],{"platform":38,"version":1315},"0.11.0",[],"\u003Cul>\n\u003Cli>Added \u003Ccode>getMIDI\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>getMusicXML\u003C\u002Fcode> now returns a \u003Ccode>Uint8Array\u003C\u002Fcode> at the top level\u003C\u002Fstrong> — the response no longer carries a \u003Ccode>.data\u003C\u002Fcode> property\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The cursor's \u003Ccode>voiceIdx\u003C\u002Fcode> is now \u003Ccode>voiceIdxInStaff\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>","- 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…","2018-11-29",{"slug":1321,"title":1322,"locale":19,"products":1323,"platforms":1324,"categories":1325,"kind":840,"size":325,"publicationDate":1326,"modificationDate":1327,"links":1328,"images":1334,"track":18,"bodyHtml":1335,"excerpt":1336,"primaryCategory":38,"ownPage":360,"date":1337},"2018-11-23-embed-sdk-v0-10-0-new-default-cdn-and-two-removals","Embed SDK v0.10.0: new default CDN and two removals",[321,344],[38],[38],"2026-09-21T07:52:48.486Z","2026-09-21T08:54:23.219Z",{"blogPosts":1329,"helpArticles":1330,"releases":1331},[],[],[1332],{"platform":38,"version":1333},"0.10.0",[],"\u003Cp>Updated for the embed release.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The SDK now loads from \u003Ccode>flat-embed.com\u003C\u002Fcode> by default\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Removed the deprecated \u003Ccode>edit\u003C\u002Fcode> action and \u003Ccode>edit\u003C\u002Fcode> event\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Removed \u003Ccode>setNoteColor\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>","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","2018-11-23",[],{"key":279,"year":260,"month":315,"majors":1340,"areas":1358},[1341],{"slug":1342,"title":1343,"locale":19,"products":1344,"platforms":1345,"categories":1346,"kind":324,"size":325,"publicationDate":1347,"modificationDate":1348,"links":1349,"images":1354,"track":18,"bodyHtml":1355,"excerpt":1356,"primaryCategory":37,"ownPage":360,"date":1357},"2018-09-11-api-v2-7-0-import-guitar-pro-powertab-tuxguitar-and-musescore-files","API v2.7.0: import Guitar Pro, PowerTab, TuxGuitar and MuseScore files",[321],[37],[37,364,468],"2026-09-16T11:56:59.970Z","2026-09-16T16:04:41.590Z",{"blogPosts":1350,"helpArticles":1351,"releases":1352},[],[],[1353],{"platform":37,"version":624},[],"\u003Cul>\n\u003Cli>\u003Cstrong>More import formats.\u003C\u002Fstrong> Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files can be imported, and imports accept a filename.\u003C\u002Fli>\n\u003Cli>Collections can be listed under a parent collection and report their creation date; scores list the collections they belong to.\u003C\u002Fli>\n\u003Cli>Contextual comments are anchored to a staff by identifier rather than by index, and resource rights say whether the caller is a collaborator.\u003C\u002Fli>\n\u003C\u002Ful>","- More import formats. Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files can be imported, and imports accept a filename. -…","2018-09-11",[],{"key":269,"year":260,"month":460,"majors":1360,"areas":1378},[1361],{"slug":1362,"title":1363,"locale":19,"products":1364,"platforms":1365,"categories":1366,"kind":324,"size":325,"publicationDate":1367,"modificationDate":1368,"links":1369,"images":1374,"track":18,"bodyHtml":1375,"excerpt":1376,"primaryCategory":37,"ownPage":360,"date":1377},"2018-04-23-api-v2-6-0-the-collections-api","API v2.6.0: the Collections API",[321],[37],[37,468],"2026-09-16T11:57:30.291Z","2026-09-16T16:04:54.329Z",{"blogPosts":1370,"helpArticles":1371,"releases":1372},[],[],[1373],{"platform":37,"version":648},[],"\u003Cul>\n\u003Cli>\u003Cstrong>Collections API.\u003C\u002Fstrong> 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.\u003C\u002Fli>\n\u003Cli>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.\u003C\u002Fli>\n\u003Cli>Comments can be filtered by type (document or inline).\u003C\u002Fli>\n\u003Cli>Part exports now take part identifiers instead of indexes, and from September 2019 a user's score listing only returns public scores.\u003C\u002Fli>\n\u003C\u002Ful>","- Collections API. Create, list, update, delete and restore collections, list their scores, and add or remove scores, with three new OAuth2 scopes for…","2018-04-23",[],{"key":310,"year":287,"month":788,"majors":1380,"areas":1381},[],[1382],{"category":38,"name":33,"count":365,"entries":1383},[1384],{"slug":1385,"title":1386,"locale":19,"products":1387,"platforms":1388,"categories":1389,"kind":324,"size":374,"publicationDate":1390,"modificationDate":1391,"links":1392,"images":1398,"track":18,"bodyHtml":1399,"excerpt":1400,"primaryCategory":38,"ownPage":360,"date":1401},"2017-11-10-embed-sdk-v0-9-0-mute-the-embed","Embed SDK v0.9.0: mute the embed",[321,344],[38],[38],"2026-09-21T07:52:42.076Z","2026-09-21T08:54:21.505Z",{"blogPosts":1393,"helpArticles":1394,"releases":1395},[],[],[1396],{"platform":38,"version":1397},"0.9.0",[],"\u003Cp>Added method \u003Ccode>mute\u003C\u002Fcode>.\u003C\u002Fp>","Added method mute.","2017-11-10",{"key":308,"year":287,"month":630,"majors":1403,"areas":1404},[],[1405],{"category":37,"name":31,"count":484,"entries":1406},[1407,1424],{"slug":1408,"title":1409,"locale":19,"products":1410,"platforms":1411,"categories":1412,"kind":324,"size":374,"publicationDate":1413,"modificationDate":1414,"links":1415,"images":1420,"track":18,"bodyHtml":1421,"excerpt":1422,"primaryCategory":37,"ownPage":360,"date":1423},"2017-10-22-api-v2-5-0-audio-and-video-tracks-on-scores","API v2.5.0: audio and video tracks on scores",[321],[37],[37,1082],"2026-09-16T11:57:56.602Z","2026-09-16T16:05:00.327Z",{"blogPosts":1416,"helpArticles":1417,"releases":1418},[],[],[1419],{"platform":37,"version":671},[],"\u003Cul>\n\u003Cli>\u003Cstrong>Score tracks.\u003C\u002Fstrong> Attach and list audio and video tracks on a score, the same tracks users sync with their score in the editor.\u003C\u002Fli>\n\u003C\u002Ful>","- Score tracks. Attach and list audio and video tracks on a score, the same tracks users sync with their score in the editor.","2017-10-22",{"slug":1425,"title":1426,"locale":19,"products":1427,"platforms":1428,"categories":1429,"kind":324,"size":374,"publicationDate":1430,"modificationDate":1431,"links":1432,"images":1437,"track":18,"bodyHtml":1438,"excerpt":1439,"primaryCategory":37,"ownPage":360,"date":1440},"2017-10-02-api-v2-4-0-score-metadata-subtitle-composer-lyricist-license-tags-and-more","API v2.4.0: score metadata, from subtitle and composer to licence and tags",[321],[37],[37,468],"2026-09-16T11:58:18.885Z","2026-09-16T16:05:08.602Z",{"blogPosts":1433,"helpArticles":1434,"releases":1435},[],[],[1436],{"platform":37,"version":717},[],"\u003Cul>\n\u003Cli>\u003Cstrong>Richer score metadata.\u003C\u002Fstrong> Scores expose their subtitle, lyricist, composer, description, tags, creation type, licence, duration, number of bars, main tempo and publication date. Description, tags, creation type and licence can be set through the API; the title is edited by saving a new revision of the score.\u003C\u002Fli>\n\u003C\u002Ful>","- Richer score metadata. Scores expose their subtitle, lyricist, composer, description, tags, creation type, licence, duration, number of bars, main tempo and…","2017-10-02",{"key":304,"year":287,"month":411,"majors":1442,"areas":1460},[1443],{"slug":1444,"title":1445,"locale":19,"products":1446,"platforms":1447,"categories":1448,"kind":324,"size":325,"publicationDate":1449,"modificationDate":1450,"links":1451,"images":1456,"track":18,"bodyHtml":1457,"excerpt":1458,"primaryCategory":37,"ownPage":360,"date":1459},"2017-08-28-api-v2-3-0-manage-organization-accounts-class-states-canvas-and-clever-details","API v2.3.0: manage organisation accounts, class states, Canvas and Clever details",[321,344],[37],[37,469,1037],"2026-09-16T11:58:34.548Z","2026-09-16T16:05:20.976Z",{"blogPosts":1452,"helpArticles":1453,"releases":1454},[],[],[1455],{"platform":37,"version":782},[],"\u003Cul>\n\u003Cli>\u003Cstrong>Organisation account management.\u003C\u002Fstrong> Admins can update managed accounts, and delete them or convert them to consumer accounts; user and invitation listings use cursor-based pagination.\u003C\u002Fli>\n\u003Cli>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.\u003C\u002Fli>\n\u003Cli>Profiles expose a theme and the instruments played.\u003C\u002Fli>\n\u003C\u002Ful>","- Organisation account management. Admins can update managed accounts, and delete them or convert them to consumer accounts; user and invitation listings use…","2017-08-28",[1461],{"category":38,"name":33,"count":484,"entries":1462},[1463,1481],{"slug":1464,"title":1465,"locale":19,"products":1466,"platforms":1467,"categories":1468,"kind":324,"size":374,"publicationDate":1469,"modificationDate":1470,"links":1471,"images":1477,"track":18,"bodyHtml":1478,"excerpt":1479,"primaryCategory":38,"ownPage":360,"date":1480},"2017-08-08-embed-sdk-v0-7-0-color-a-note","Embed SDK v0.7.0: colour a note",[321,344],[38],[38],"2026-09-21T07:52:36.262Z","2026-09-21T08:54:19.301Z",{"blogPosts":1472,"helpArticles":1473,"releases":1474},[],[],[1475],{"platform":38,"version":1476},"0.7.0",[],"\u003Cp>Added method \u003Ccode>setNoteColor\u003C\u002Fcode>.\u003C\u002Fp>","Added method setNoteColor.","2017-08-08",{"slug":1482,"title":1483,"locale":19,"products":1484,"platforms":1485,"categories":1486,"kind":324,"size":374,"publicationDate":1487,"modificationDate":1488,"links":1489,"images":1495,"track":18,"bodyHtml":1496,"excerpt":1497,"primaryCategory":38,"ownPage":360,"date":1498},"2017-08-03-embed-sdk-v0-6-0-read-and-move-the-cursor","Embed SDK v0.6.0: read and move the cursor",[321,344],[38],[38],"2026-09-21T07:52:30.645Z","2026-09-21T08:54:17.466Z",{"blogPosts":1490,"helpArticles":1491,"releases":1492},[],[],[1493],{"platform":38,"version":1494},"0.6.0",[],"\u003Cp>Added methods \u003Ccode>getCursorPosition\u003C\u002Fcode> and \u003Ccode>setCursorPosition\u003C\u002Fcode>.\u003C\u002Fp>","Added methods getCursorPosition and setCursorPosition.","2017-08-03",{"key":302,"year":287,"month":433,"majors":1500,"areas":1536},[1501,1519],{"slug":1502,"title":1503,"locale":19,"products":1504,"platforms":1505,"categories":1506,"kind":324,"size":325,"publicationDate":1507,"modificationDate":1508,"links":1509,"images":1515,"track":18,"bodyHtml":1516,"excerpt":1517,"primaryCategory":38,"ownPage":360,"date":1518},"2017-07-07-embed-sdk-v0-5-0-focus-the-score-and-pick-the-default-mode","Embed SDK v0.5.0: focus the score and choose the default mode",[321,344],[38],[38],"2026-09-21T07:52:24.313Z","2026-09-21T08:54:15.619Z",{"blogPosts":1510,"helpArticles":1511,"releases":1512},[],[],[1513],{"platform":38,"version":1514},"0.5.0",[],"\u003Cul>\n\u003Cli>Added method \u003Ccode>focusScore\u003C\u002Fcode> to give the embed keyboard focus\u003C\u002Fli>\n\u003Cli>New \u003Ccode>defaultMode\u003C\u002Fcode> property in the editor configuration\u003C\u002Fli>\n\u003C\u002Ful>","- Added method focusScore to give the embed keyboard focus - New defaultMode property in the editor configuration","2017-07-07",{"slug":1520,"title":1521,"locale":19,"products":1522,"platforms":1523,"categories":1524,"kind":324,"size":325,"publicationDate":1525,"modificationDate":1526,"links":1527,"images":1532,"track":18,"bodyHtml":1533,"excerpt":1534,"primaryCategory":37,"ownPage":360,"date":1535},"2017-07-02-api-v2-2-0-the-flat-for-education-api","API v2.2.0: the Flat for Education API",[344],[37],[37,469,348],"2026-09-16T11:58:56.563Z","2026-09-16T16:05:32.292Z",{"blogPosts":1528,"helpArticles":1529,"releases":1530},[],[],[1531],{"platform":37,"version":806},[],"\u003Cul>\n\u003Cli>\u003Cstrong>The first education APIs are public.\u003C\u002Fstrong> Manage classes, assignments and submissions, organisation accounts and invitations, LTI credentials, and the groups and users of an organisation: everything a school integration needs.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Scoped access.\u003C\u002Fstrong> New OAuth2 scopes cover classes, assignments and organisation administration, each with a read-only variant, so an integration only asks for what it needs.\u003C\u002Fli>\n\u003C\u002Ful>","- The first education APIs are public. Manage classes, assignments and submissions, organisation accounts and invitations, LTI credentials, and the groups and…","2017-07-02",[1537],{"category":38,"name":33,"count":365,"entries":1538},[1539],{"slug":1540,"title":1541,"locale":19,"products":1542,"platforms":1543,"categories":1544,"kind":324,"size":374,"publicationDate":1545,"modificationDate":1546,"links":1547,"images":1553,"track":18,"bodyHtml":1554,"excerpt":1555,"primaryCategory":38,"ownPage":360,"date":1556},"2017-07-05-embed-sdk-v0-4-0-export-the-score-as-a-png","Embed SDK v0.4.0: export the score as a PNG",[321,344],[38],[38],"2026-09-21T07:52:17.924Z","2026-09-21T08:54:13.588Z",{"blogPosts":1548,"helpArticles":1549,"releases":1550},[],[],[1551],{"platform":38,"version":1552},"0.4.0",[],"\u003Cp>Added method \u003Ccode>getPNG\u003C\u002Fcode> to export the displayed score as an image.\u003C\u002Fp>","Added method getPNG to export the displayed score as an image.","2017-07-05",{"key":298,"year":287,"month":895,"majors":1558,"areas":1577},[1559],{"slug":1560,"title":1561,"locale":19,"products":1562,"platforms":1563,"categories":1564,"kind":324,"size":325,"publicationDate":1565,"modificationDate":1566,"links":1567,"images":1573,"track":18,"bodyHtml":1574,"excerpt":1575,"primaryCategory":38,"ownPage":360,"date":1576},"2017-05-03-embed-sdk-v0-3-0-read-the-embed-configuration-and-switch-the-editor-on","Embed SDK v0.3.0: read the embed configuration and switch the editor on",[321,344],[38],[38],"2026-09-21T07:52:12.125Z","2026-09-21T08:54:11.721Z",{"blogPosts":1568,"helpArticles":1569,"releases":1570},[],[],[1571],{"platform":38,"version":1572},"0.3.0",[],"\u003Cp>Your code can now inspect how the embed is configured and turn it into an editor.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Added methods: \u003Ccode>getEmbedConfig\u003C\u002Fcode>, \u003Ccode>setEditorConfig\u003C\u002Fcode>, \u003Ccode>edit\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Added event: \u003Ccode>edit\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>","Your code can now inspect how the embed is configured and turn it into an editor. - Added methods: getEmbedConfig, setEditorConfig, edit - Added event: edit","2017-05-03",[],{"key":296,"year":287,"month":460,"majors":1579,"areas":1615},[1580,1598],{"slug":1581,"title":1582,"locale":19,"products":1583,"platforms":1584,"categories":1585,"kind":324,"size":325,"publicationDate":1586,"modificationDate":1587,"links":1588,"images":1594,"track":18,"bodyHtml":1595,"excerpt":1596,"primaryCategory":38,"ownPage":360,"date":1597},"2017-04-21-embed-sdk-v0-2-0-auto-zoom-musicxml-loading-and-the-first-events","Embed SDK v0.2.0: auto-zoom, MusicXML loading and the first events",[321,344],[38],[38],"2026-09-21T07:52:03.434Z","2026-09-21T08:54:09.993Z",{"blogPosts":1589,"helpArticles":1590,"releases":1591},[],[],[1592],{"platform":38,"version":1593},"0.2.0",[],"\u003Cp>The SDK can now load scores from MusicXML and report what the reader is doing.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Added methods: \u003Ccode>getAutoZoom\u003C\u002Fcode>, \u003Ccode>setAutoZoom\u003C\u002Fcode>, \u003Ccode>loadMusicXML\u003C\u002Fcode>, \u003Ccode>getMusicXML\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Added events: \u003Ccode>scoreLoaded\u003C\u002Fcode>, \u003Ccode>cursorPosition\u003C\u002Fcode>, \u003Ccode>rangeSelection\u003C\u002Fcode>, \u003Ccode>pause\u003C\u002Fcode>, \u003Ccode>stop\u003C\u002Fcode>, \u003Ccode>fullscreen\u003C\u002Fcode>, \u003Ccode>print\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Added integration tests\u003C\u002Fli>\n\u003C\u002Ful>","The SDK can now load scores from MusicXML and report what the reader is doing. - Added methods: getAutoZoom, setAutoZoom, loadMusicXML, getMusicXML - Added…","2017-04-21",{"slug":1599,"title":1600,"locale":19,"products":1601,"platforms":1602,"categories":1603,"kind":324,"size":325,"publicationDate":1604,"modificationDate":1605,"links":1606,"images":1611,"track":18,"bodyHtml":1612,"excerpt":1613,"primaryCategory":37,"ownPage":360,"date":1614},"2017-04-10-the-flat-rest-api-is-public","The Flat REST API is public",[321],[37],[37],"2026-09-16T11:59:00.068Z","2026-09-16T12:07:21.808Z",{"blogPosts":1607,"helpArticles":1608,"releases":1609},[],[],[1610],{"platform":37,"version":848},[],"\u003Cp>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.\u003C\u002Fp>\n\u003Cp>Everything since then is recorded in the \u003Ca href=\"https:\u002F\u002Fflat.io\u002Fdevelopers\u002Fdocs\u002Fapi\u002Fchangelog#v2-0-0-2017-04-10\" rel=\"referer\">API changelog\u003C\u002Fa>, and the \u003Ca href=\"https:\u002F\u002Fflat.io\u002Fdevelopers\u002Fdocs\u002Fapi\u002F\" rel=\"referer\">developer documentation\u003C\u002Fa> covers authentication, the reference and guides.\u003C\u002Fp>","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…","2017-04-10",[1616,1636],{"category":37,"name":31,"count":365,"entries":1617},[1618],{"slug":1619,"title":1620,"locale":19,"products":1621,"platforms":1622,"categories":1623,"kind":324,"size":374,"publicationDate":1625,"modificationDate":1626,"links":1627,"images":1632,"track":18,"bodyHtml":1633,"excerpt":1634,"primaryCategory":37,"ownPage":360,"date":1635},"2017-04-17-api-v2-1-0-private-link-sharing-and-simpler-comment-creation","API v2.1.0: private link sharing and simpler comment creation",[321],[37],[37,1624],"collaboration","2026-09-16T11:58:58.387Z","2026-09-16T16:05:39.388Z",{"blogPosts":1628,"helpArticles":1629,"releases":1630},[],[],[1631],{"platform":37,"version":826},[],"\u003Cul>\n\u003Cli>\u003Cstrong>Private links.\u003C\u002Fstrong> Scores shared by private link can be accessed through the API with their sharing key.\u003C\u002Fli>\n\u003Cli>Comments can be created on the latest revision without naming it.\u003C\u002Fli>\n\u003C\u002Ful>","- Private links. Scores shared by private link can be accessed through the API with their sharing key. - Comments can be created on the latest revision without…","2017-04-17",{"category":38,"name":33,"count":365,"entries":1637},[1638],{"slug":1639,"title":1640,"locale":19,"products":1641,"platforms":1642,"categories":1643,"kind":324,"size":374,"publicationDate":1644,"modificationDate":1645,"links":1646,"images":1652,"track":18,"bodyHtml":1653,"excerpt":1654,"primaryCategory":38,"ownPage":360,"date":1597},"2017-04-21-embed-sdk-v0-1-0-the-first-public-release","Embed SDK v0.1.0: the first public release",[321,344],[38],[38],"2026-09-21T07:51:55.600Z","2026-09-21T08:54:08.222Z",{"blogPosts":1647,"helpArticles":1648,"releases":1649},[],[],[1650],{"platform":38,"version":1651},"0.1.0",[],"\u003Cp>First public release of \u003Ccode>flat-embed\u003C\u002Fcode>, the JavaScript SDK that embeds a Flat score in your own page and drives it from your code.\u003C\u002Fp>","First public release of flat-embed, the JavaScript SDK that embeds a Flat score in your own page and drives it from your code.",[],{"api":1657,"ios":1658,"android":1664,"embed":1668,"mac":1669,"windows":1671},{"2.26.2":393,"2.26.0":341,"2.25.0":414,"2.22.0":463,"2.21.0":725,"2.20.0":746,"2.19.0":876,"2.18.0":898,"2.17.0":989,"2.16.0":1012,"2.15.0":1032,"2.14.0":1054,"2.13.0":1077,"2.12.0":1120,"2.11.0":1140,"2.10.0":1161,"2.9.0":1202,"2.8.0":1283,"2.7.0":1342,"2.6.0":1362,"2.5.0":1408,"2.4.0":1425,"2.3.0":1444,"2.1.0":1619,"2.0.0":1599,"2.2.0":1520},{"26.09.01":1659,"26.08.02":1660,"26.08.01":1661,"26.07.01":1662,"26.06.03":1663},"2026-09-15-custom-instruments-can-be-added-from-manage-instruments-on-ios","2026-08-31-flat-for-ios-adopts-liquid-glass","2026-08-11-export-options-are-remembered-on-ios","2026-07-27-swing-sixteenths-and-two-measure-repeats-no-longer-show-an-upgrade-watermark-to","2026-06-15-the-metronome-sound-always-loads-on-ios-including-offline",{"26.09.01":1665,"26.08.01":1666,"26.07.04":1662,"26.07.01":1667},"2026-08-31-export-on-android-save-to-downloads-or-open-the-file-without-saving","2026-07-31-import-a-pdf-or-photos-on-android-with-a-review-step-before-the-score-is-built","2026-07-09-android-instrument-sounds-load-reliably-and-the-keyboard-stays-put-when-switchin",{"2.12.1":487,"2.12.0":506,"2.11.0":529,"2.10.0":547,"2.9.0":567,"2.8.0":588,"2.7.0":612,"2.6.0":636,"2.5.0":659,"2.4.1":682,"2.4.0":705,"2.3.0":770,"2.2.0":794,"2.1.0":814,"2.0.1":857,"2.0.0":835,"1.5.1":922,"1.5.0":942,"1.4.1":966,"1.4.0":1099,"1.3.0":1181,"1.2.0":1222,"1.1.0":1245,"1.0.0":1263,"0.11.0":1303,"0.10.0":1321,"0.9.0":1385,"0.7.0":1464,"0.6.0":1482,"0.5.0":1502,"0.4.0":1540,"0.3.0":1560,"0.2.0":1581,"0.1.0":1639},{"26.8.0":1670},"2026-08-03-flat-for-education-desktop-app-for-mac-and-windows",{"26.8.1":1670},{},1789981328211]