Download OpenAPI specification:Download
The Flat API allows you to easily extend the abilities of the Flat Platform, with a wide range of use cases including the following:
The Flat API is built on HTTP. Our API is RESTful It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. The schema of this API follows the OpenAPI Initiative (OAI) specification, you can use and work with compatible Swagger tools. This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with W3C spec.
You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is available on Github.
Getting Started and learn more:
These API endpoints are related to the Flat account you are currently using. When using an OAuth2 access token, you can use GET /me
to get information about the account.
Get details about the current authenticated User.
onlyId | boolean Default: false Only return the user id |
from pprint import pprint import os import flat_api from flat_api.rest import ApiException configuration = flat_api.Configuration() configuration.access_token = os.environ['FLAT_ACCESS_TOKEN'] flat_api_client = flat_api.ApiClient(configuration) try: pprint(flat_api.AccountApi(flat_api_client).get_authenticated_user()) except ApiException as e: print(e)
{- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}, - "azureDetails": {
- "oid": "string",
- "hd": "string",
- "preferredUsername": "string"
}, - "privateProfile": true,
- "locale": "en",
- "groups": [
- "string"
], - "pictureFile": "string",
- "coverPictureFile": "string"
}
Sheet music is the main API object type available for all Flat account. Here is a typical lifecycle for a music score document on Flat:
POST /v2/scores
. The creation and import of music scores can be done with this single API endpoint. This one currently supports the MusicXML (compressed or not) and MIDI.GET /collections/{collection}/scores
.GET /users/{user}/scores
.GET /groups/{group}/scores
.GET /scores/{score}
.GET /scores/{score}/revisions
and a specific revision data can be downloaded with GET /scores/{score}/revisions/{revision}/{format}
. New revisions can be created using our sheet music editor or using POST /scores/{score}/revisions
(this endpoint has similar parameters than during the score creation). The last revision of a document may not directly reflect the really last version of a music score: recent modifications can be made offline or not yet consolidated into a new revision. In average, a new revision is created every 100 modifications made with our editor.POST /scores/{score}
, or individually shared using the different collaborators API endpoints (see POST /scores/{score}/collaborators
).Use this API method to create a new music score in the current User account. This API endpoints provides 3 ways to create scores:
ScoreCreationBuilderData
: Create a blank score by providing the list of instruments to use. You can optionally customize the initial key signature, time signature, enable TABs, Chord grids, as well as the page layout.ScoreCreationFileImport
: Import an existing MusicXML 3 file (vnd.recordare.musicxml
or vnd.recordare.musicxml+xml
), a MIDI file (audio/midi
), Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar, or MuseScore file to create the new Flat document.ScoreCreationGoogleDriveImport
: Import an existing Google Drive file from the connected Google Drive account.This API call will automatically create the first revision of the document, the score can be modified by the using our web application or by uploading a new revision of this file (POST /v2/scores/{score}/revisions/{revision}
).
The currently authenticated user will be granted owner of the file and will be able to add other collaborators (users and groups).
If no collection
is specified, the API will create the score in the most appropriate collection. When using an OAuth2 access token or a personal token, the score will be automatically added to your dedicated app collection in the account (/v2/collections/app
).
If a collection
is specified and this one has more public privacy settings than the score (e.g. public
vs private
for the score), the privacy settings of the created score will be adjusted to the collection ones.
You can check the adjusted privacy settings in the returned score privacy
, and optionally adjust these settings if needed using PUT /scores/{score}
.
title required | string The title of the new score. If the title is too long, the API may trim this one. If this title is not specified, the API will try to (in this order):
|
privacy | string (ScorePrivacy) Default: "private" Enum: "public" "private" "organizationPublic" "privateLink" The score main privacy mode.
The score can also be individually shared to a set of users or groups using the different collaborators API methods. When a file is synchronized from an external source (e.g. Google Drive) and the sharing options are changed on the source, Flat will chose the best privacy mode for the file. When using a Flat for Education account, some of the modes may not be available if disabled by an administrator of the organization (e.g. by default the |
collection | string Unique identifier of a collection where the score will be created.
If no collection identifier is provided, the score will be stored in the |
googleDriveFolder | string If the user uses Google Drive and this properties is specified, the file will be created in this directory. The currently user creating the file must be granted to write in this directory. |
required | object |
{- "title": "Violin and Piano",
- "privacy": "private",
- "builderData": {
- "scoreData": {
- "fifths": 8,
- "nbBeats": 2,
- "beatType": 4,
- "instruments": [
- {
- "group": "strings",
- "instrument": "hq-violin"
}, - {
- "group": "strings",
- "instrument": "hq-grand-piano",
- "shortName": "Pno.",
- "longName": "Super Piano"
}
]
}, - "layoutData": {
- "notesSpacingCoeff": 2,
- "lengthUnit": "cm",
- "pageHeight": 29.7,
- "pageWidth": 21,
- "pageMarginTop": 1.5,
- "pageMarginBottom": 1.5,
- "pageMarginLeft": 2.5,
- "pageMarginRight": 2.5
}
}
}
{- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
Get the details of a score identified by the score
parameter in the URL.
The currently authenticated user must have at least a read access to the document to use this API call.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
This API method allows you to change the metadata of a score document (e.g. its title
or privacy
), all the properties are optional.
To edit the file itself, create a new revision using the appropriate method (POST /v2/scores/{score}/revisions/{revision}
).
When editing the title
, subtitle
, composer
, lyricist
, arranger
or licenseText
, the metadatas will be instantly be updated, and a real-time action will be pushed to update the document lazily.
This pending document modification will be automatically be saved as a new version by either a connected client or our internal versioning service.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
title | string The title of the score |
subtitle | string or null The subtitle of the score |
composer | string or null The composer of the score |
lyricist | string or null The lyricist of the score |
arranger | string or null The arranger of the score |
privacy | string (ScorePrivacy) Default: "private" Enum: "public" "private" "organizationPublic" "privateLink" The score main privacy mode.
The score can also be individually shared to a set of users or groups using the different collaborators API methods. When a file is synchronized from an external source (e.g. Google Drive) and the sharing options are changed on the source, Flat will chose the best privacy mode for the file. When using a Flat for Education account, some of the modes may not be available if disabled by an administrator of the organization (e.g. by default the |
sharingKey | string^[a-f0-9]{128}$ When using the |
description | string or null <= 2000 characters Description of the creation |
tags | Array of strings Tags describing the score |
creationType | string or null (ScoreCreationType) Enum: "original" "arrangement" "other" null The type of creation (an orginal, an arrangement) |
license | string or null (ScoreLicense) Enum: "copyright" "cc0" "cc-by" "cc-by-sa" "cc-by-nd" "cc-by-nc" "cc-by-nc-sa" "cc-by-nc-nd" null License of the creation. Read more about the Creative Commons licenses on https://creativecommons.org/licenses/ |
licenseText | string or null The rights info written on the score |
{- "privacy": "private"
}
{- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
This method can be used by anyone that has at least read access to the document:
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
now | boolean Default: false If |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
This method will remove the score from the trash
collection and from the deletion queue, and add it back to the original collections.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
This API call will list the different assignments submissions where the score is attached. This method can be used by anyone that are part of the organization and have at least read access to the document.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
[- {
- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2020-08-12T00:25:00.748000Z",
- "submissionDate": "2020-08-12T00:45:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "returnDate": "2020-08-15T00:25:00.748000Z",
- "returnCreator": "559eb5c7f0d4d5e46d000000",
- "grade": 80,
- "draftGrade": 82,
- "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
]
This API call will make a copy of the last revision of the specified score and create a new score. The copy of the score will have a privacy set to private
.
When using a Flat for Education account, the inline and contextualized comments will be accessible in the child document.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
collection | string or null Default: "root" Unique identifier of a collection where the score will be copied.
If no collection identifier is provided, the score will be stored in the |
googleDriveDisabled | boolean Default: false If set to |
keepOriginalTitle | boolean Option to keep the original title of the score (i.e. don't prepend it with "Copy of ", or add the student name in assignment usage). |
{- "collection": "root",
- "googleDriveDisabled": false,
- "keepOriginalTitle": true
}
{- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
This API call will list the different collaborators of a score and their rights on the document. The returned list will at least contain the owner of the document.
Collaborators can be a single user (the object user
will be populated) or a group (the object group
will be populated).
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
[- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
]
Share a score with a single user or a group. This API call allows to add, invite and update the collaborators of a resource.
user
property.userEmail
property.group
property.score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
user | string The unique identifier of a Flat user |
group | string The unique identifier of a Flat group |
userEmail | string Fill this field to invite an individual user by email. |
userToken | string Token received in an invitation to join the score. |
aclRead | boolean Default: true
|
aclWrite | boolean Default: false
|
aclAdmin | boolean Default: false
|
{- "userEmail": "jdoe@flat.io",
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": false
}
{- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
Get the information about a collaborator (User or Group).
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
collaborator required | string Unique identifier of a collaborator permission, or unique identifier of a User, or unique identifier of a Group |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
Remove the specified collaborator from the score
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
collaborator required | string Unique identifier of a collaborator permission, or unique identifier of a User, or unique identifier of a Group |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
assignment | string An assignment id with which all the tracks returned will be related to |
listAutoTrack | boolean If true, and if available, return last automatically synchronized Flat's mp3 export as an additional track |
[- {
- "id": "59ecb20e563736b1e1f75dce",
- "title": "Rick Astley - Never Gonna Give You Up",
- "type": "youtube",
- "mediaId": "dQw4w9WgXcQ",
- "creationDate": "2017-10-22T14:58:22.753000Z",
- "modificationDate": "2017-10-22T14:58:33.424000Z",
- "default": true,
- "state": "completed",
- "creator": "5815d4b53269d90d2c80b71c",
- "score": "59a29d96f35a6411d7508bdd",
- "synchronizationPoints": [
- {
- "type": "measure",
- "time": 0,
- "measureUuid": "5132a788-69e6-d0c6-84ec-4bd858658d7c"
}, - {
- "type": "end",
- "time": 213
}
]
}
]
Use this method to add new track to the score. This track can then be played on flat.io or in an embedded score. This API method support medias hosted on SoundCloud, YouTube and Vimeo.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
title | string Title of the track |
default | boolean True if the track should be used as default audio source |
state | string (ScoreTrackState) Default: "draft" Enum: "draft" "completed" "deleted" State of the track |
purpose | string (ScoreTrackPurpose) Default: "common" Enum: "common" "performanceSubmission" The purpose of the audio track |
url | string The URL of the track |
Array of objects (ScoreTrackPoint) |
{- "title": "Rick Astley - Never Gonna Give You Up",
- "default": true,
- "state": "draft",
- "synchronizationPoints": [
- {
- "type": "measure",
- "time": 0,
- "measureUuid": "5132a788-69e6-d0c6-84ec-4bd858658d7c"
}, - {
- "type": "end",
- "time": 213
}
]
}
{- "id": "59ecb20e563736b1e1f75dce",
- "title": "Rick Astley - Never Gonna Give You Up",
- "type": "youtube",
- "mediaId": "dQw4w9WgXcQ",
- "creationDate": "2017-10-22T14:58:22.753000Z",
- "modificationDate": "2017-10-22T14:58:33.424000Z",
- "default": true,
- "state": "completed",
- "creator": "5815d4b53269d90d2c80b71c",
- "score": "59a29d96f35a6411d7508bdd",
- "synchronizationPoints": [
- {
- "type": "measure",
- "time": 0,
- "measureUuid": "5132a788-69e6-d0c6-84ec-4bd858658d7c"
}, - {
- "type": "end",
- "time": 213
}
]
}
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
track required | string Unique identifier of a score audio track |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "id": "59ecb20e563736b1e1f75dce",
- "title": "Rick Astley - Never Gonna Give You Up",
- "type": "youtube",
- "mediaId": "dQw4w9WgXcQ",
- "creationDate": "2017-10-22T14:58:22.753000Z",
- "modificationDate": "2017-10-22T14:58:33.424000Z",
- "default": true,
- "state": "completed",
- "creator": "5815d4b53269d90d2c80b71c",
- "score": "59a29d96f35a6411d7508bdd",
- "synchronizationPoints": [
- {
- "type": "measure",
- "time": 0,
- "measureUuid": "5132a788-69e6-d0c6-84ec-4bd858658d7c"
}, - {
- "type": "end",
- "time": 213
}
]
}
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
track required | string Unique identifier of a score audio track |
title | string Title of the track |
default | boolean True if the track should be used as default audio source |
state | string (ScoreTrackState) Default: "draft" Enum: "draft" "completed" "deleted" State of the track |
purpose | string (ScoreTrackPurpose) Default: "common" Enum: "common" "performanceSubmission" The purpose of the audio track |
Array of objects (ScoreTrackPoint) |
{- "title": "Rick Astley - Never Gonna Give You Up",
- "default": true,
- "state": "draft",
- "synchronizationPoints": [
- {
- "type": "measure",
- "time": 0,
- "measureUuid": "5132a788-69e6-d0c6-84ec-4bd858658d7c"
}, - {
- "type": "end",
- "time": 213
}
]
}
{- "id": "59ecb20e563736b1e1f75dce",
- "title": "Rick Astley - Never Gonna Give You Up",
- "type": "youtube",
- "mediaId": "dQw4w9WgXcQ",
- "creationDate": "2017-10-22T14:58:22.753000Z",
- "modificationDate": "2017-10-22T14:58:33.424000Z",
- "default": true,
- "state": "completed",
- "creator": "5815d4b53269d90d2c80b71c",
- "score": "59a29d96f35a6411d7508bdd",
- "synchronizationPoints": [
- {
- "type": "measure",
- "time": 0,
- "measureUuid": "5132a788-69e6-d0c6-84ec-4bd858658d7c"
}, - {
- "type": "end",
- "time": 213
}
]
}
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
track required | string Unique identifier of a score audio track |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
This method lists the different comments added on a music score (documents and inline) sorted by their post dates.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
type | string Enum: "document" "inline" Filter the comments by type |
sort | string Value: "date" Sort |
direction | string Enum: "asc" "desc" Sort direction |
[- {
- "id": "000000000000000000000010",
- "type": "inline",
- "user": "000000000000000000000001",
- "score": "000000000000000000000042",
- "revision": "000000000000000000000011",
- "replyTo": "000000000000000000000000",
- "date": "2017-01-26T20:29:10.622000Z",
- "modificationDate": "2017-01-26T21:29:10.622000Z",
- "comment": "@[000000000000000000000000:flat] Great work!",
- "rawComment": "@flat: Great work!",
- "context": {
- "partUuid": "91982db7-2e6d-285e-7a19-76b4bd005b8b",
- "staffUuid": "9395d8f3-f42b-47b6-8c5d-6ba704961ec0",
- "measureUuids": [
- "e6a6a60b-8710-f819-9a49-e907b19c6f1f",
- "da83d93c-e3a6-3c73-1bbe-15e5131d6437",
- "056ec5eb-9213-df56-6ae8-d9b99673dc48"
], - "startDpq": 1,
- "stopDpq": 1,
- "startTimePos": 2,
- "stopTimePos": 3
}, - "mentions": [
- "000000000000000000000000"
], - "resolved": true,
- "resolvedBy": "000000000000000000000000",
- "spam": false
}
]
Post a document or a contextualized comment on a document.
Please note that this method includes an anti-spam system for public scores. We don't guarantee that your comments will be accepted and displayed to end-user. Comments are be blocked by returning a 403
HTTP error and hidden from other users when the spam
property is true
.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
revision | string The unique indentifier of the revision of the score where the comment was added. If this property is unspecified or contains "last", the API will automatically take the last revision created. |
comment required | string The comment text that can includes mentions using the following format: |
rawComment | string A raw version of the comment, that can be displayed without the mentions. If you use mentions, this property must be set. |
mentions | Array of strings The list of user identifiers mentioned in this comment |
replyTo | string When the comment is a reply to another comment, the unique identifier of the parent comment |
object (ScoreCommentContext) The context of the comment (for inline/contextualized comments). A context will include all the information related to the location of the comment (i.e. score parts, range of measure, time position). |
{- "revision": "000000000000000000000010",
- "comment": "@[000000000000000000000000:flat] Great work!",
- "rawComment": "@flat: Great work!",
- "mentions": [
- "000000000000000000000000"
], - "replyTo": "000000000000000000000000",
- "context": {
- "partUuid": "91982db7-2e6d-285e-7a19-76b4bd005b8b",
- "staffUuid": "9395d8f3-f42b-47b6-8c5d-6ba704961ec0",
- "measureUuids": [
- "e6a6a60b-8710-f819-9a49-e907b19c6f1f",
- "da83d93c-e3a6-3c73-1bbe-15e5131d6437",
- "056ec5eb-9213-df56-6ae8-d9b99673dc48"
], - "startDpq": 1,
- "stopDpq": 1,
- "startTimePos": 2,
- "stopTimePos": 3
}
}
{- "id": "000000000000000000000010",
- "type": "inline",
- "user": "000000000000000000000001",
- "score": "000000000000000000000042",
- "revision": "000000000000000000000011",
- "replyTo": "000000000000000000000000",
- "date": "2017-01-26T20:29:10.622000Z",
- "modificationDate": "2017-01-26T21:29:10.622000Z",
- "comment": "@[000000000000000000000000:flat] Great work!",
- "rawComment": "@flat: Great work!",
- "context": {
- "partUuid": "91982db7-2e6d-285e-7a19-76b4bd005b8b",
- "staffUuid": "9395d8f3-f42b-47b6-8c5d-6ba704961ec0",
- "measureUuids": [
- "e6a6a60b-8710-f819-9a49-e907b19c6f1f",
- "da83d93c-e3a6-3c73-1bbe-15e5131d6437",
- "056ec5eb-9213-df56-6ae8-d9b99673dc48"
], - "startDpq": 1,
- "stopDpq": 1,
- "startTimePos": 2,
- "stopTimePos": 3
}, - "mentions": [
- "000000000000000000000000"
], - "resolved": true,
- "resolvedBy": "000000000000000000000000",
- "spam": false
}
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
comment required | string Unique identifier of a sheet music comment |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
revision | string The unique indentifier of the revision of the score where the comment was added. If this property is unspecified or contains "last", the API will automatically take the last revision created. |
comment | string [ 1 .. 10000 ] characters The comment text that can includes mentions using the following format: |
rawComment | string [ 1 .. 10000 ] characters A raw version of the comment, that can be displayed without the mentions. If you use mentions, this property must be set. |
object (ScoreCommentContext) The context of the comment (for inline/contextualized comments). A context will include all the information related to the location of the comment (i.e. score parts, range of measure, time position). |
{- "revision": "000000000000000000000011",
- "comment": "@[000000000000000000000000:flat] Great work!",
- "rawComment": "@flat: Great work!",
- "mentions": [
- "000000000000000000000000"
], - "replyTo": "000000000000000000000000",
- "context": {
- "partUuid": "91982db7-2e6d-285e-7a19-76b4bd005b8b",
- "staffUuid": "9395d8f3-f42b-47b6-8c5d-6ba704961ec0",
- "measureUuids": [
- "e6a6a60b-8710-f819-9a49-e907b19c6f1f",
- "da83d93c-e3a6-3c73-1bbe-15e5131d6437",
- "056ec5eb-9213-df56-6ae8-d9b99673dc48"
], - "startDpq": 1,
- "stopDpq": 1,
- "startTimePos": 2,
- "stopTimePos": 3
}
}
{- "id": "000000000000000000000010",
- "type": "inline",
- "user": "000000000000000000000001",
- "score": "000000000000000000000042",
- "revision": "000000000000000000000011",
- "replyTo": "000000000000000000000000",
- "date": "2017-01-26T20:29:10.622000Z",
- "modificationDate": "2017-01-26T21:29:10.622000Z",
- "comment": "@[000000000000000000000000:flat] Great work!",
- "rawComment": "@flat: Great work!",
- "context": {
- "partUuid": "91982db7-2e6d-285e-7a19-76b4bd005b8b",
- "staffUuid": "9395d8f3-f42b-47b6-8c5d-6ba704961ec0",
- "measureUuids": [
- "e6a6a60b-8710-f819-9a49-e907b19c6f1f",
- "da83d93c-e3a6-3c73-1bbe-15e5131d6437",
- "056ec5eb-9213-df56-6ae8-d9b99673dc48"
], - "startDpq": 1,
- "stopDpq": 1,
- "startTimePos": 2,
- "stopTimePos": 3
}, - "mentions": [
- "000000000000000000000000"
], - "resolved": true,
- "resolvedBy": "000000000000000000000000",
- "spam": false
}
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
comment required | string Unique identifier of a sheet music comment |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
comment required | string Unique identifier of a sheet music comment |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
comment required | string Unique identifier of a sheet music comment |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
When creating a score or saving a new version of a score, a revision is created in our storage. This method allows you to list all of them, sorted by last modification.
Depending the plan of the account, this list can be trunked to the few last revisions.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
[- {
- "user": "000000000000000000000020",
- "collaborators": [
- "000000000000000000000010",
- "000000000000000000000020"
], - "description": "New revision",
- "creationDate": "2017-01-26T20:29:10.622000Z",
- "autosave": true
}
]
Update a score by uploading a new revision for this one.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
data required | string The data of the score file. It must be a MusicXML 3 file ( |
dataEncoding | string Value: "base64" The optional encoding of the score data. This property must match the encoding used for the |
autosave | boolean Must be set to |
description | string A description associated to the revision |
{- "data": "<score-partwise version=\"3.0\"></score-partwise>",
- "history": [
- {
- "id": "b278ad43-2e99-4e60-a782-ac119b294ab8",
- "userId": "000000000000000000000010",
- "fnc": "action.AddMeasure",
- "args": {
- "previousUuid": "888cb742-2110-a050-ba71-28300ba6d61f",
- "measureUuid": "0be9f739-3213-f312-bb0a-00ad0c787ef7"
}
}
], - "autosave": true,
- "description": "New revision"
}
{- "user": "000000000000000000000020",
- "collaborators": [
- "000000000000000000000010",
- "000000000000000000000020"
], - "description": "New revision",
- "creationDate": "2017-01-26T20:29:10.622000Z",
- "autosave": true
}
When creating a score or saving a new version of a score, a revision is created in our storage. This method allows you to get a specific revision metadata.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
revision required | string Unique identifier of a score revision. You can use |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "user": "000000000000000000000020",
- "collaborators": [
- "000000000000000000000010",
- "000000000000000000000020"
], - "description": "New revision",
- "creationDate": "2017-01-26T20:29:10.622000Z",
- "autosave": true
}
Retrieve the file corresponding to a score revision (the following formats are available): Flat JSON/Adagio JSON json
, MusicXML
mxl
/xml
, MP3 mp3
, WAV wav
, MIDI midi
, a tumbnail of the first page thumbnail.png
or auto sync points synchronizationPoints
.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
revision required | string Unique identifier of a score revision. You can use |
format required | string Enum: "json" "mxl" "xml" "mp3" "wav" "midi" "thumbnail.png" "synchronizationPoints" The format of the file you will retrieve |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
parts | string An optional a set of parts uuid to be exported. This parameter must be composed of parts uuids separated by commas. For example "59df645f-bb1c-f1b4-b573-d2afc4491f94,34ef645f-1aef-f3bc-1564-34cca4492b87". |
defaultTrack | boolean When |
url | boolean Returns a json with the |
"string"
Some of the exports of a score takes are longer to process than a simple API requests. Use this endpoint to launch a new export of one score hosted on Flat.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
revision required | string Unique identifier of a score revision. You can use |
format required | string Enum: "mp3" "wav" "practicefirst" The format of the file that will be generated or the target service name where the file will be exported |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
parts | Array of strings A list of parts to specifically export |
{- "parts": [
- "49b7d7c5-7490-4f76-9813-607f79e5b92b",
- "96b5066b-54ed-4c6b-b3fc-cb7281403a89"
]
}
{- "id": "string",
- "type": "string",
- "state": "created",
- "format": "string",
- "score": "string",
- "progress": {
- "percent": 0,
- "text": "string"
}, - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "doneDate": "2019-08-24T14:15:22Z",
- "result": {
- "url": "string",
- "error": "string"
}, - "errorHistory": [
- "string"
]
}
user required | string Unique identifier of a Flat user. If you authenticated, you can use |
next | string An opaque string cursor to fetch the next page of data.
The paginated API URLs are returned in the |
previous | string An opaque string cursor to fetch the previous page of data.
The paginated API URLs are returned in the |
limit | integer [ 1 .. 100 ] Default: 25 This is the maximum number of objects that may be returned |
ids | boolean Return only the identifiers of the scores |
[- {
- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
]
Get the list of public scores owned by a User.
If you want to access to private scores, please use the Collections API.
For example GET /v2/collections/allScores/scores
to list all recently updated scores.
user required | string Unique identifier of a Flat user. If you authenticated, you can use |
paginate | boolean Default: false When set to |
sort | string Enum: "creationDate" "modificationDate" "title" Sort |
direction | string Enum: "asc" "desc" Sort direction |
limit | integer [ 1 .. 100 ] Default: 25 This is the maximum number of objects that may be returned |
next | string An opaque string cursor to fetch the next page of data.
The paginated API URLs are returned in the |
previous | string An opaque string cursor to fetch the previous page of data.
The paginated API URLs are returned in the |
[- {
- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
]
Get the list of scores shared with a group.
group required | string Unique identifier of a Flat group |
parent | string Filter the score forked from the score id |
[- {
- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
]
Collections let you organize your content in a Flat account. They work like a regular folder with some specificities:
trash
and sharedWithMe
that are special collections).All the collections don't have the same capabilities. Capabilities depend on the type
of collection and the rights
you have on a collection. They are available when listing the collection or retrieving the collection details.
By default, when using an OAuth2 access token or a personal token, all the new scores will be added to a dedicated app collection created in the user account.
This collection has an alias app
. For example, you can use GET /v2/collections/app/scores
to list all the scores created by your app.
At this time, only private
privacy mode is widely available. Privacy modes public
, organizationPublic
and privateLink
, and 1:1 sharing will be available in an upcoming update later this year.
Use this method to list the user's collections contained in parent
(by default in the root
collection).
If no sort option is provided, the collections are sorted by creationDate
desc
.
Note that this method will not include the parent
collection in the listing.
For example, if you need the details of the root
collection, you can use GET /v2/collections/root
.
To fetch your app collection details, you can use GET /v2/collections/app
.
parent | string Default: "root" List the collection contained in this This option doesn't provide a complete multi-level collection support.
When sharing a collection with someone, this one will have as |
sort | string Enum: "creationDate" "title" Sort |
direction | string Enum: "asc" "desc" Sort direction |
limit | integer [ 1 .. 100 ] Default: 25 This is the maximum number of objects that may be returned |
next | string An opaque string cursor to fetch the next page of data.
The paginated API URLs are returned in the |
previous | string An opaque string cursor to fetch the previous page of data.
The paginated API URLs are returned in the |
[- {
- "id": "string",
- "title": "string",
- "htmlUrl": "string",
- "type": "root",
- "privacy": "private",
- "sharingKey": "string",
- "app": {
- "id": "string",
- "name": "string",
- "logo": "string"
}, - "creationDate": "2019-08-24T14:15:22Z",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string"
}, - "organization": "string",
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "contents": {
- "scoresCount": 0
}, - "capabilities": {
- "canEdit": true,
- "canShare": true,
- "canDelete": true,
- "canAddScores": true,
- "canDeleteScores": true
}, - "collections": [
- "string"
]
}
]
This method will create a new collection and add it to your root
collection.
title | string [ 1 .. 300 ] characters The title of the collection |
privacy | string (CollectionPrivacy) Value: "private" The collection main privacy mode.
|
{- "title": "Jazz scores",
- "privacy": "private"
}
{- "id": "string",
- "title": "string",
- "htmlUrl": "string",
- "type": "root",
- "privacy": "private",
- "sharingKey": "string",
- "app": {
- "id": "string",
- "name": "string",
- "logo": "string"
}, - "creationDate": "2019-08-24T14:15:22Z",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string"
}, - "organization": "string",
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "contents": {
- "scoresCount": 0
}, - "capabilities": {
- "canEdit": true,
- "canShare": true,
- "canDelete": true,
- "canAddScores": true,
- "canDeleteScores": true
}, - "collections": [
- "string"
]
}
collection required | string Unique identifier of the collection. The following aliases are supported:
|
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "id": "string",
- "title": "string",
- "htmlUrl": "string",
- "type": "root",
- "privacy": "private",
- "sharingKey": "string",
- "app": {
- "id": "string",
- "name": "string",
- "logo": "string"
}, - "creationDate": "2019-08-24T14:15:22Z",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string"
}, - "organization": "string",
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "contents": {
- "scoresCount": 0
}, - "capabilities": {
- "canEdit": true,
- "canShare": true,
- "canDelete": true,
- "canAddScores": true,
- "canDeleteScores": true
}, - "collections": [
- "string"
]
}
collection required | string Unique identifier of the collection. The following aliases are supported:
|
title | string [ 1 .. 300 ] characters The title of the collection |
privacy | string (CollectionPrivacy) Value: "private" The collection main privacy mode.
|
{- "title": "string",
- "privacy": "private"
}
{- "id": "string",
- "title": "string",
- "htmlUrl": "string",
- "type": "root",
- "privacy": "private",
- "sharingKey": "string",
- "app": {
- "id": "string",
- "name": "string",
- "logo": "string"
}, - "creationDate": "2019-08-24T14:15:22Z",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string"
}, - "organization": "string",
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "contents": {
- "scoresCount": 0
}, - "capabilities": {
- "canEdit": true,
- "canShare": true,
- "canDelete": true,
- "canAddScores": true,
- "canDeleteScores": true
}, - "collections": [
- "string"
]
}
This method will schedule the deletion of the collection. Until deleted, the collection will be available in the trash
.
collection required | string Unique identifier of the collection. The following aliases are supported:
|
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
This method will restore the collection by removing it from the trash
and add it back to the root
collection.
collection required | string Unique identifier of the collection. |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
Use this method to list the scores contained in a collection.
If no sort option is provided, the scores are sorted by modificationDate
desc
.
For example, to list the scores contained in your app collection, you can use GET /v2/collections/app/scores
.
collection required | string Unique identifier of the collection. The following aliases are supported:
|
sharingKey | string This sharing key must be specified to access to a score or collection with a |
sort | string Enum: "creationDate" "modificationDate" "title" Sort |
direction | string Enum: "asc" "desc" Sort direction |
limit | integer [ 1 .. 100 ] Default: 25 This is the maximum number of objects that may be returned |
next | string An opaque string cursor to fetch the next page of data.
The paginated API URLs are returned in the |
previous | string An opaque string cursor to fetch the previous page of data.
The paginated API URLs are returned in the |
[- {
- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
]
This operation will add a score to a collection. The default behavior will make the score available across multiple collections.
You must have the capability canAddScores
on the provided collection
to perform the action.
collection required | string Unique identifier of the collection. The following aliases are supported:
|
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
This method will delete a score from the collection. Unlike DELETE /scores/{score}
, this score will not remove the score from your account, but only from the collection.
This can be used to move a score from one collection to another, or simply remove a score from one collection when this one is contained in multiple collections.
collection required | string Unique identifier of the collection. The following aliases are supported:
|
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
sharingKey | string This sharing key must be specified to access to a score or collection with a |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
API methods related to the Flat Community user profiles and Flat for Education profiles
Get a profile of a Flat or Flat for Education User.
user required | string This route parameter is the unique identifier of the user. You can specify an email instead of an unique identifier. If you are executing this request authenticated, you can use |
{- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}
user required | string Unique identifier of a Flat user. If you authenticated, you can use |
next | string An opaque string cursor to fetch the next page of data.
The paginated API URLs are returned in the |
previous | string An opaque string cursor to fetch the previous page of data.
The paginated API URLs are returned in the |
limit | integer [ 1 .. 100 ] Default: 25 This is the maximum number of objects that may be returned |
ids | boolean Return only the identifiers of the scores |
[- {
- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
]
Get the list of public scores owned by a User.
If you want to access to private scores, please use the Collections API.
For example GET /v2/collections/allScores/scores
to list all recently updated scores.
user required | string Unique identifier of a Flat user. If you authenticated, you can use |
paginate | boolean Default: false When set to |
sort | string Enum: "creationDate" "modificationDate" "title" Sort |
direction | string Enum: "asc" "desc" Sort direction |
limit | integer [ 1 .. 100 ] Default: 25 This is the maximum number of objects that may be returned |
next | string An opaque string cursor to fetch the next page of data.
The paginated API URLs are returned in the |
previous | string An opaque string cursor to fetch the previous page of data.
The paginated API URLs are returned in the |
[- {
- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
]
sort | string The order to sort the user list |
direction | string Enum: "asc" "desc" Sort direction |
next | string An opaque string cursor to fetch the next page of data.
The paginated API URLs are returned in the |
previous | string An opaque string cursor to fetch the previous page of data.
The paginated API URLs are returned in the |
role | Array of strings Items Enum: "user" "teacher" "admin" Filter users by role |
q | string The query to search |
group | Array of strings Filter users by group |
noActiveLicense | boolean Filter users who don't have an active license |
licenseExpirationDate | Array of strings Filter users by license expiration date or |
onlyIds | boolean Return only user ids |
limit | integer [ 1 .. 1000 ] Default: 25 This is the maximum number of objects that may be returned |
[- {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "email": "user@example.com",
- "lastActivityDate": "2019-08-24T14:15:22Z",
- "license": {
- "id": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "source": "order",
- "mode": "credit",
- "active": true
}, - "groups": [
- "string"
]
}
]
username required | string [ 1 .. 30 ] characters ^[A-Za-z0-9\-_.]+$ Username of the new account |
firstname | string <= 60 characters First name of the user |
lastname | string <= 60 characters Last name of the user |
string <email> Email of the new account | |
password required | string <password> [ 6 .. 1000 ] characters Password of the new account |
locale | string (FlatLocales) Default: "en" Enum: "en" "en-GB" "es" "fr" "de" "it" "ja" "ja-HIRA" "ko" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sv" "tr" "zh-Hans" The user language |
role | string Default: "user" Enum: "user" "teacher" "admin" Role of the new account |
{- "username": "string",
- "firstname": "string",
- "lastname": "string",
- "email": "user@example.com",
- "password": "pa$$word",
- "locale": "en",
- "role": "user"
}
{- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "email": "user@example.com",
- "lastActivityDate": "2019-08-24T14:15:22Z",
- "license": {
- "id": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "source": "order",
- "mode": "credit",
- "active": true
}, - "groups": [
- "string"
]
}
role | Array of strings Items Enum: "user" "teacher" "admin" Filter users by role |
q | string The query to search |
group | Array of strings Filter users by group |
noActiveLicense | boolean Filter users who don't have an active license |
0
user required | string Unique identifier of the Flat account |
password | string <password> [ 6 .. 1000 ] characters Password of the account |
organizationRole | string (OrganizationRoles) Enum: "admin" "billing" "teacher" "user" User's Organization Role (for Edu users only) |
username | string [ 1 .. 30 ] characters ^[A-Za-z0-9\-_.]+$ Username of the account |
firstname | string <= 60 characters First name of the user |
lastname | string <= 60 characters Last name of the user |
string <email> Email of the account |
{- "password": "pa$$word",
- "organizationRole": "admin",
- "username": "string",
- "firstname": "string",
- "lastname": "string",
- "email": "user@example.com"
}
{- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "email": "user@example.com",
- "lastActivityDate": "2019-08-24T14:15:22Z",
- "license": {
- "id": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "source": "order",
- "mode": "credit",
- "active": true
}, - "groups": [
- "string"
]
}
This operation removes an account from Flat and its data, including:
user required | string Unique identifier of the Flat account |
convertToIndividual | boolean If |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
user required | string Unique identifier of the Flat account |
destinationPath | string Default: "/" Path to redirect to after signin |
{- "destinationPath": "/class"
}
{- "expirationDate": "2022-01-01T00:00:00Z"
}
This operation will create an API access token for a chosen organization user. This token will be valid for a limited time and can be used to access the API as the organization user.
user required | string Unique identifier of the Flat account |
scopes required | Array of strings (AppScopes) Items Enum: "account.public_profile" "account.email" "account.education_profile" "scores.readonly" "scores.social" "scores" "collections.readonly" "collections.add_scores" "collections" "notifications.readonly" "edu.resources" "edu.resources.readonly" "edu.classes" "edu.classes.readonly" "edu.assignments" "edu.assignments.readonly" "edu.admin" "edu.admin.lti" "edu.admin.lti.readonly" "edu.admin.users" "edu.admin.users.readonly" "tasks.readonly" List of requested scopes for this credential |
{- "scopes": [
- "account.public_profile",
- "account.education_profile",
- "edu.classes.readonly"
]
}
{- "id": "0000000000000000",
- "name": "API Access Token name",
- "token": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "issuedDate": "2022-01-01T00:00:00Z",
- "expirationDate": "2022-01-01T00:00:00Z",
- "scopes": [
- "account.public_profile",
- "account.education_profile",
- "collections.readonly"
]
}
role | string Enum: "user" "teacher" "admin" Filter users by role |
limit | integer [ 1 .. 1000 ] Default: 50 This is the maximum number of objects that may be returned |
next | string An opaque string cursor to fetch the next page of data.
The paginated API URLs are returned in the |
previous | string An opaque string cursor to fetch the previous page of data.
The paginated API URLs are returned in the |
[- {
- "creationDate": "2017-07-02T15:05:15.576000Z",
- "customCode": "u5raQ7pZ",
- "email": "edu@flat.io",
- "id": "59590bab53b1af260610000",
- "invitedBy": "55b8d8f395c8db031ed00000",
- "organization": "55df29a6694e4a3953100000",
- "organizationRole": "teacher"
}
]
This method creates and sends invitation for teachers and admins.
Invitations can only be used by new Flat users or users who are not part of the organization yet.
If the email of the user is already associated to a user of your organization, the API will simply update the role of the existing user and won't send an invitation. In this case, the property usedBy
will be directly filled with the uniquer identifier of the corresponding user.
string The email address you want to send the invitation to | |
organizationRole | string Default: "teacher" Enum: "admin" "teacher" User's Organization Role |
{- "email": "edu@flat.io",
- "organizationRole": "teacher"
}
{- "creationDate": "2017-07-02T15:05:15.576000Z",
- "customCode": "u5raQ7pZ",
- "email": "edu@flat.io",
- "id": "59590bab53b1af260610000",
- "invitedBy": "55b8d8f395c8db031ed00000",
- "organization": "55df29a6694e4a3953100000",
- "organizationRole": "teacher"
}
[- {
- "id": "59368be5c66caf895ee02387",
- "name": "My couple of credentials for Canvas",
- "lms": "canvas",
- "organization": "5832c801a4bedc05f4fb4993",
- "creator": "5832bf149995c4024bd6de7d",
- "creationDate": "2017-06-06T11:03:01.955000Z",
- "lastUsage": "2017-06-13T16:02:34.324000Z",
- "consumerKey": "200082F5-FAFD-4C6E-BB19-7DAB5D6264D4",
- "consumerSecret": "ABCDE1234"
}
]
Flat for Education is a Certified LTI Provider. You can use these API methods to automate the creation of LTI credentials. You can read more about our LTI implementation, supported components and LTI Endpoints in our Developer Documentation.
name required | string <= 300 characters Name of the couple of credentials |
lms required | string (LmsName) Enum: "canvas" "moodle" "schoology" "blackboard" "desire2learn" "sakai" "schoolbox" "other" LMS name |
{- "name": "My couple of credentials for Canvas",
- "lms": "canvas"
}
{- "id": "59368be5c66caf895ee02387",
- "name": "My couple of credentials for Canvas",
- "lms": "canvas",
- "organization": "5832c801a4bedc05f4fb4993",
- "creator": "5832bf149995c4024bd6de7d",
- "creationDate": "2017-06-06T11:03:01.955000Z",
- "lastUsage": "2017-06-13T16:02:34.324000Z",
- "consumerKey": "200082F5-FAFD-4C6E-BB19-7DAB5D6264D4",
- "consumerSecret": "ABCDE1234"
}
This API call will list the different assignments submissions where the score is attached. This method can be used by anyone that are part of the organization and have at least read access to the document.
score required | string Unique identifier of the score document. This can be a Flat Score unique identifier (i.e. |
[- {
- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2020-08-12T00:25:00.748000Z",
- "submissionDate": "2020-08-12T00:45:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "returnDate": "2020-08-15T00:25:00.748000Z",
- "returnCreator": "559eb5c7f0d4d5e46d000000",
- "grade": 80,
- "draftGrade": 82,
- "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
]
state | string Default: "active" Enum: "active" "inactive" "archived" Filter the classes by state |
[- {
- "id": "100000000000000000000001",
- "state": "active",
- "name": "Music Theory 101",
- "section": "Music Theory 101",
- "organization": "100000000000000000000002",
- "owner": "100000000000000000000003",
- "enrollmentCode": "jm447ear",
- "theme": "blue-8",
- "assignmentsCount": 10,
- "creationTime": "2017-01-25T09:47:34.544000Z",
- "googleClassroom": {
- "id": "00000000",
}, - "microsoftGraph": {
- "id": "00000000-0000-0000-0000-000000000000"
}, - "googleDrive": {
- "teacherFolderId": "0B-0000000000000000"
}, - "lti": {
- "contextId": "042",
- "contextLabel": "MUSIC",
- "contextTitle": "Music Theory 101"
}, - "canvas": {
- "id": "000000000"
}
}
]
Classrooms on Flat allow you to create activities with assignments and post content to a specific group.
When creating a class, Flat automatically creates two groups: one for the teachers of the course, one for the students. The creator of this class is automatically added to the teachers group.
If the classsroom is synchronized with another application like Google Classroom, some of the meta information will automatically be updated.
You can add users to this class using PUT /classes/{class}/users/{user}
, they will automatically added to the group based on their role on Flat. Users can also enroll themselves to this class using POST /classes/enroll/{enrollmentCode}
and the enrollmentCode
returned in the ClassDetails
response.
name required | string <= 255 characters The name of the new class |
section | string <= 255 characters The section of the new class |
level | string (ClassGradeLevel) Enum: "elementary" "middle" "high" "university" "other" Class grade level |
skillsFocused | Array of strings (EduSkillsFocused) Items Enum: "notation" "sight-reading" "performance-instrumental" "ear-training" "music-theory" "composition" "jazz-ensemble" "music-technology" "other" Specific skills that will be focused in classroom |
size | number or null >= 0 Number of students in the classroom |
{- "name": "Music Theory Course",
- "section": "Music Theory 101"
}
{- "id": "100000000000000000000001",
- "state": "active",
- "name": "Music Theory 101",
- "section": "Music Theory 101",
- "organization": "100000000000000000000002",
- "owner": "100000000000000000000003",
- "enrollmentCode": "jm447ear",
- "theme": "blue-8",
- "assignmentsCount": 10,
- "creationTime": "2017-01-25T09:47:34.544000Z",
- "googleClassroom": {
- "id": "00000000",
}, - "microsoftGraph": {
- "id": "00000000-0000-0000-0000-000000000000"
}, - "googleDrive": {
- "teacherFolderId": "0B-0000000000000000"
}, - "lti": {
- "contextId": "042",
- "contextLabel": "MUSIC",
- "contextTitle": "Music Theory 101"
}, - "canvas": {
- "id": "000000000"
}
}
class required | string Unique identifier of the class |
{- "id": "100000000000000000000001",
- "state": "active",
- "name": "Music Theory 101",
- "section": "Music Theory 101",
- "organization": "100000000000000000000002",
- "owner": "100000000000000000000003",
- "enrollmentCode": "jm447ear",
- "theme": "blue-8",
- "assignmentsCount": 10,
- "creationTime": "2017-01-25T09:47:34.544000Z",
- "googleClassroom": {
- "id": "00000000",
}, - "microsoftGraph": {
- "id": "00000000-0000-0000-0000-000000000000"
}, - "googleDrive": {
- "teacherFolderId": "0B-0000000000000000"
}, - "lti": {
- "contextId": "042",
- "contextLabel": "MUSIC",
- "contextTitle": "Music Theory 101"
}, - "canvas": {
- "id": "000000000"
}
}
Update the meta information of the class
class required | string Unique identifier of the class |
Details of the Class
name | string <= 255 characters The name of the class |
section | string <= 255 characters The section of the class |
level | string (ClassGradeLevel) Enum: "elementary" "middle" "high" "university" "other" Class grade level |
skillsFocused | Array of strings (EduSkillsFocused) Items Enum: "notation" "sight-reading" "performance-instrumental" "ear-training" "music-theory" "composition" "jazz-ensemble" "music-technology" "other" Specific skills that will be focused in classroom |
size | number or null >= 0 Number of students in the classroom |
{- "name": "Music Theory Course",
- "section": "Music Theory 101"
}
{- "id": "100000000000000000000001",
- "state": "active",
- "name": "Music Theory 101",
- "section": "Music Theory 101",
- "organization": "100000000000000000000002",
- "owner": "100000000000000000000003",
- "enrollmentCode": "jm447ear",
- "theme": "blue-8",
- "assignmentsCount": 10,
- "creationTime": "2017-01-25T09:47:34.544000Z",
- "googleClassroom": {
- "id": "00000000",
}, - "microsoftGraph": {
- "id": "00000000-0000-0000-0000-000000000000"
}, - "googleDrive": {
- "teacherFolderId": "0B-0000000000000000"
}, - "lti": {
- "contextId": "042",
- "contextLabel": "MUSIC",
- "contextTitle": "Music Theory 101"
}, - "canvas": {
- "id": "000000000"
}
}
Mark the class as archived
. When this course is synchronized with another app, like Google Classroom, this state will be automatically be updated.
class required | string Unique identifier of the class |
{- "id": "100000000000000000000001",
- "state": "active",
- "name": "Music Theory 101",
- "section": "Music Theory 101",
- "organization": "100000000000000000000002",
- "owner": "100000000000000000000003",
- "enrollmentCode": "jm447ear",
- "theme": "blue-8",
- "assignmentsCount": 10,
- "creationTime": "2017-01-25T09:47:34.544000Z",
- "googleClassroom": {
- "id": "00000000",
}, - "microsoftGraph": {
- "id": "00000000-0000-0000-0000-000000000000"
}, - "googleDrive": {
- "teacherFolderId": "0B-0000000000000000"
}, - "lti": {
- "contextId": "042",
- "contextLabel": "MUSIC",
- "contextTitle": "Music Theory 101"
}, - "canvas": {
- "id": "000000000"
}
}
Mark the class as active
. When this course is synchronized with another app, like Google Classroom, this state will be automatically be updated.
class required | string Unique identifier of the class |
{- "id": "100000000000000000000001",
- "state": "active",
- "name": "Music Theory 101",
- "section": "Music Theory 101",
- "organization": "100000000000000000000002",
- "owner": "100000000000000000000003",
- "enrollmentCode": "jm447ear",
- "theme": "blue-8",
- "assignmentsCount": 10,
- "creationTime": "2017-01-25T09:47:34.544000Z",
- "googleClassroom": {
- "id": "00000000",
}, - "microsoftGraph": {
- "id": "00000000-0000-0000-0000-000000000000"
}, - "googleDrive": {
- "teacherFolderId": "0B-0000000000000000"
}, - "lti": {
- "contextId": "042",
- "contextLabel": "MUSIC",
- "contextTitle": "Music Theory 101"
}, - "canvas": {
- "id": "000000000"
}
}
Mark the class as active
. This is mainly used for classes synchronized from Clever that are initially with an inactive
state and hidden in the UI.
class required | string Unique identifier of the class |
{- "id": "100000000000000000000001",
- "state": "active",
- "name": "Music Theory 101",
- "section": "Music Theory 101",
- "organization": "100000000000000000000002",
- "owner": "100000000000000000000003",
- "enrollmentCode": "jm447ear",
- "theme": "blue-8",
- "assignmentsCount": 10,
- "creationTime": "2017-01-25T09:47:34.544000Z",
- "googleClassroom": {
- "id": "00000000",
}, - "microsoftGraph": {
- "id": "00000000-0000-0000-0000-000000000000"
}, - "googleDrive": {
- "teacherFolderId": "0B-0000000000000000"
}, - "lti": {
- "contextId": "042",
- "contextLabel": "MUSIC",
- "contextTitle": "Music Theory 101"
}, - "canvas": {
- "id": "000000000"
}
}
This method can be used by a teacher of the class to enroll another Flat user into the class.
Only users that are part of your Organization can be enrolled in a class of this same Organization.
When enrolling a user in the class, Flat will automatically add this user to the corresponding Class group, based on this role in the Organization.
class required | string Unique identifier of the class |
user required | string Unique identifier of the user |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
This method can be used by a teacher to remove a user from the class, or by a student to leave the classroom.
Warning: Removing a user from the class will remove the associated resources, including the submissions and feedback related to these submissions.
class required | string Unique identifier of the class |
user required | string Unique identifier of the user |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
Use this method as a teacher to list all the assignment submissions sent by a student of the class
class required | string Unique identifier of the class |
user required | string Unique identifier of the user |
[- {
- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2020-08-12T00:25:00.748000Z",
- "submissionDate": "2020-08-12T00:45:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "returnDate": "2020-08-15T00:25:00.748000Z",
- "returnCreator": "559eb5c7f0d4d5e46d000000",
- "grade": 80,
- "draftGrade": 82,
- "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
]
class required | string Unique identifier of the class |
[- {
- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
], - "state": "active",
- "creator": "5832bf149995c4024bd6de7d",
- "classroom": "58c4725345cd836264f0b29e",
- "creationDate": "2017-06-12T13:56:19.613000Z",
- "dueDate": "2017-07-12T13:56:19.613000Z",
- "scheduledDate": "2017-06-18T13:56:19.613000Z",
- "googleClassroom": {
- "id": "1235665432",
}, - "lti": {
- "id": "12345"
}, - "canvas": {
- "id": "12345",
}, - "submissions": [
- {
- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2017-03-12T00:25:00.748000Z",
- "submissionDate": "2017-03-12T00:25:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
]
}
]
Use this method as a teacher to create and post a new assignment to a class.
If the class is synchronized with Google Classroom, the assignment will be automatically posted to your Classroom course.
class required | string Unique identifier of the class |
type | string (AssignmentType) Enum: "none" "newScore" "scoreTemplate" "sharedWriting" "worksheet" "performance" Type of the assignment |
title | string [ 1 .. 1000 ] characters Title of the assignment |
description | string Description and content of the assignment |
Array of objects (ClassAttachmentCreation) | |
nbPlaybackAuthorized | number or null The number of playback authorized on the scores of the assignment. |
restrictPlayNote | boolean Restrict the ability to get an audio feedback every time a student adds or selects a note. |
restrictToAudioTracks | boolean Restrict the audio source to provided audio tracks on a score. Students won't be able to use the editor playback. |
toolset | string or null The id of the toolset to apply to this assignment. The toolset will be copied to the assignment as a dedicated object to prevent unexpected changes when making modifications to the template toolset. This property can be set to null to delete the linked toolset and switch back to all the tools available for this assignment. |
coverFile | string or null The id of the cover to display |
cover | string or null The URL of the cover to display |
maxPoints | number or null [ 0 .. 10000 ] If set, the grading will be enabled for the assignement with this value as the maximum of points |
releaseGrades | string Enum: "auto" "manual" For worksheets, how grading will work for the assignment:
|
shuffleExercises | boolean Mixing worksheets exercises for each student |
state | string Enum: "draft" "active" State of the assignment |
dueDate | string or null <date-time> The due date of this assignment, late submissions will be marked as paste due. If not set, the assignment won't have a due date. |
scheduledDate | string or null <date-time> The publication (scheduled) date of the assignment. If this one is specified, the assignment will only be listed to the teachers of the class. |
object Google Classroom options for this assignment | |
object Microsoft Graph options for this assignment | |
assigneeMode | string Enum: "everyone" "selected" Possible modes of assigning assignments |
assignedStudents | Array of strings Identifiers for the students that have access to the assignment |
{- "title": "First assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
},
], - "scheduledDate": "2017-06-20T13:56:19.613000Z",
- "dueDate": "2017-07-12T13:56:19.613000Z"
}
{- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}
Copy an assignment to a specified class or the resource library
For class assignments:
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
classroom required | string The destination classroom where the assignment will be copied |
assignment | string An optional destination assignment where the original assignement will be copied. Must be a draft. |
scheduledDate | string <date-time> The publication (scheduled) date of the assignment.
If this one is specified, the assignment will only be listed to the teachers of the class.
Alternatively the existing |
{- "classroom": "0000000000000000"
}
{- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
], - "resource": "string"
}
Archive the assignment
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
{- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}
Mark the assignment as active
.
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
{- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
[- {
- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2020-08-12T00:25:00.748000Z",
- "submissionDate": "2020-08-12T00:45:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "returnDate": "2020-08-15T00:25:00.748000Z",
- "returnCreator": "559eb5c7f0d4d5e46d000000",
- "grade": 80,
- "draftGrade": 82,
- "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
]
Use this method as a student to create, update and submit a submission related to an assignment.
Students can only set attachments
and submit
.
Teachers can use PUT /classes/{class}/assignments/{assignment}/submissions/{submission}
to update a submission by id.
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
Array of objects (ClassAttachmentCreation) | |
submit | boolean If |
draftGrade | number or null [ 0 .. 10000 ] Optional grade. If unset, no grade was set. This value is only visible by the teacher, and we will be set to |
grade | number or null [ 0 .. 10000 ] Optional grade. If unset, no grade was set. |
exercisesIds | Array of strings or null The ids of exercises when they need to be in a specific order |
return | boolean If |
{- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "submit": true
}
{- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2020-08-12T00:25:00.748000Z",
- "submissionDate": "2020-08-12T00:45:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "returnDate": "2020-08-15T00:25:00.748000Z",
- "returnCreator": "559eb5c7f0d4d5e46d000000",
- "grade": 80,
- "draftGrade": 82,
- "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
submission required | string Unique identifier of the submission |
{- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2020-08-12T00:25:00.748000Z",
- "submissionDate": "2020-08-12T00:45:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "returnDate": "2020-08-15T00:25:00.748000Z",
- "returnCreator": "559eb5c7f0d4d5e46d000000",
- "grade": 80,
- "draftGrade": 82,
- "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
Use this method as a teacher to update the different submission and give feedback.
Teachers can only set return
, draftGrade
and grade
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
submission required | string Unique identifier of the submission |
Array of objects (ClassAttachmentCreation) | |
submit | boolean If |
draftGrade | number or null [ 0 .. 10000 ] Optional grade. If unset, no grade was set. This value is only visible by the teacher, and we will be set to |
grade | number or null [ 0 .. 10000 ] Optional grade. If unset, no grade was set. |
exercisesIds | Array of strings or null The ids of exercises when they need to be in a specific order |
return | boolean If |
{- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "submit": true
}
{- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2020-08-12T00:25:00.748000Z",
- "submissionDate": "2020-08-12T00:45:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "returnDate": "2020-08-15T00:25:00.748000Z",
- "returnCreator": "559eb5c7f0d4d5e46d000000",
- "grade": 80,
- "draftGrade": 82,
- "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
Use this method as a teacher to reset a submission and allow student to start over the assignment
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
submission required | string Unique identifier of the submission |
{- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2020-08-12T00:25:00.748000Z",
- "submissionDate": "2020-08-12T00:45:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "returnDate": "2020-08-15T00:25:00.748000Z",
- "returnCreator": "559eb5c7f0d4d5e46d000000",
- "grade": 80,
- "draftGrade": 82,
- "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
For teachers only. Returns a detailed history of the submission. This currently includes state and grade histories.
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
submission required | string Unique identifier of the submission |
[- {
- "date": "2019-08-24T14:15:22Z",
- "classroom": "string",
- "assignment": "string",
- "submission": "string",
- "users": [
- "string"
], - "source": "lti",
- "state": "created",
- "draftGrade": 0,
- "grade": 0,
- "maxPoints": 0,
- "comment": "string",
- "dueDate": "2019-08-24T14:15:22Z",
- "attachment": {
- "score": "string",
- "revision": "string",
- "title": "string"
}
}
]
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
submission required | string Unique identifier of the submission |
[- {
- "id": "string",
- "user": "string",
- "submission": "string",
- "date": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "comment": "string",
- "unread": true
}
]
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
submission required | string Unique identifier of the submission |
comment required | string The comment text |
{- "comment": "string"
}
{- "id": "string",
- "user": "string",
- "submission": "string",
- "date": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "comment": "string",
- "unread": true
}
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
submission required | string Unique identifier of the submission |
comment required | string Unique identifier of the comment |
comment required | string The comment text |
{- "comment": "string"
}
{- "id": "string",
- "user": "string",
- "submission": "string",
- "date": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "comment": "string",
- "unread": true
}
class required | string Unique identifier of the class |
assignment required | string Unique identifier of the assignment |
submission required | string Unique identifier of the submission |
comment required | string Unique identifier of the comment |
{- "code": "CLIENT_ERROR",
- "message": "Invalid request",
- "id": "123456789"
}
Test students account can be created by teachers an admin and be used to experiment the assignments.
class required | string Unique identifier of the class |
reset | boolean If true, the testing account will be re-created. |
{- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}, - "azureDetails": {
- "oid": "string",
- "hd": "string",
- "preferredUsername": "string"
}, - "privateProfile": true,
- "locale": "en",
- "groups": [
- "string"
], - "pictureFile": "string",
- "coverPictureFile": "string"
}
Use this method to join a class using an enrollment code given one of the teacher of this class. This code is also available in the ClassDetails
returned to the teachers when creating the class or listing / fetching a specific class.
Flat will automatically add the user to the corresponding class group based on this role in the organization.
enrollmentCode required | string The enrollment code, available to the teacher in |
{- "id": "100000000000000000000001",
- "state": "active",
- "name": "Music Theory 101",
- "section": "Music Theory 101",
- "organization": "100000000000000000000002",
- "owner": "100000000000000000000003",
- "enrollmentCode": "jm447ear",
- "theme": "blue-8",
- "assignmentsCount": 10,
- "creationTime": "2017-01-25T09:47:34.544000Z",
- "googleClassroom": {
- "id": "00000000",
}, - "microsoftGraph": {
- "id": "00000000-0000-0000-0000-000000000000"
}, - "googleDrive": {
- "teacherFolderId": "0B-0000000000000000"
}, - "lti": {
- "contextId": "042",
- "contextLabel": "MUSIC",
- "contextTitle": "Music Theory 101"
}, - "canvas": {
- "id": "000000000"
}
}
Resource libraries in Flat for Education. These API endpoints are in beta and may include breaking changes over the upcoming months.
parent | string Default: "root" List the resources contained in this |
withoutSubfoldersResources | boolean For the |
type | string Enum: "assignment" "folder" Filter the returned resources by type |
subjects | Array of strings (TeachingTheme) Items Enum: "composition" "music-theory" "general-music" "band" "choir" "orchestra" "jazz-ensemble" "music-technology" "other" Filter the returned resources by subjects |
assignmentTypes | Array of strings (AssignmentType) Items Enum: "none" "newScore" "scoreTemplate" "sharedWriting" "worksheet" "performance" Filter the returned resources by assignment types |
grades | Array of strings (Grade) Items Enum: "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "university" Filter the returned resources by grades |
sort | string Default: "creationDate" Enum: "creationDate" "updateDate" "title" Sort |
direction | string Enum: "asc" "desc" Sort direction |
limit | integer [ 1 .. 100 ] Default: 25 This is the maximum number of resources that may be returned |
next | string An opaque string cursor to fetch the next page of data.
The paginated API URLs are returned in the |
previous | string An opaque string cursor to fetch the previous page of data.
The paginated API URLs are returned in the |
[- {
- "id": "string",
- "creator": "string",
- "type": "assignment",
- "privacy": "private",
- "tags": [
- "string"
], - "parent": "string",
- "title": "string",
- "sharingDescription": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "updateDate": "2019-08-24T14:15:22Z",
- "resource": {
- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}, - "capabilities": {
- "canEdit": true,
- "canAddResources": true,
- "canAddFolders": true,
- "canChangePrivacy": true
}, - "subjects": [
- "composition"
], - "grades": [
- "1"
]
}
]
type required | string (EduResourceType) Enum: "assignment" "folder" Type of an education resource |
title required | string [ 1 .. 1000 ] characters Title of the resource |
parent | string Default: "root" Identifier of the parent resource where the new one will created, e.g. a folder id or |
{- "type": "assignment",
- "title": "string",
- "parent": "root"
}
{- "id": "string",
- "creator": "string",
- "type": "assignment",
- "privacy": "private",
- "tags": [
- "string"
], - "parent": "string",
- "title": "string",
- "sharingDescription": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "updateDate": "2019-08-24T14:15:22Z",
- "resource": {
- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}, - "capabilities": {
- "canEdit": true,
- "canAddResources": true,
- "canAddFolders": true,
- "canChangePrivacy": true
}, - "subjects": [
- "composition"
], - "grades": [
- "1"
]
}
resource required | string Unique identifier of the resource |
{- "id": "string",
- "creator": "string",
- "type": "assignment",
- "privacy": "private",
- "tags": [
- "string"
], - "parent": "string",
- "title": "string",
- "sharingDescription": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "updateDate": "2019-08-24T14:15:22Z",
- "resource": {
- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}, - "capabilities": {
- "canEdit": true,
- "canAddResources": true,
- "canAddFolders": true,
- "canChangePrivacy": true
}, - "subjects": [
- "composition"
], - "grades": [
- "1"
]
}
Update any resources metadata (e.g. title).
Use this method to rename education resources folders or assignments.
resource required | string Unique identifier of the resource |
title | string [ 1 .. 1000 ] characters Title of the resource |
sharingDescription | string <= 400 characters Sharing description of the resource |
privacy | string (EduResourcePrivacy) Default: "private" Enum: "private" "organizationPublic" "public" The Education resource privacy mode. |
subjects | Array of strings (EduResourceSubjects) Items Enum: "composition" "music-theory" "general-music" "band" "choir" "orchestra" "jazz-ensemble" "music-technology" "other" The subjects of this resource, or the subjects of the resources included in the folder |
grades | Array of strings (EduResourceGrades) Items Enum: "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "university" The grades of this resource, or the grades of the resources included in the folder. |
{- "title": "string",
- "sharingDescription": "string",
- "privacy": "private",
- "subjects": [
- "composition"
], - "grades": [
- "1"
]
}
{- "id": "string",
- "creator": "string",
- "type": "assignment",
- "privacy": "private",
- "tags": [
- "string"
], - "parent": "string",
- "title": "string",
- "sharingDescription": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "updateDate": "2019-08-24T14:15:22Z",
- "resource": {
- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}, - "capabilities": {
- "canEdit": true,
- "canAddResources": true,
- "canAddFolders": true,
- "canChangePrivacy": true
}, - "subjects": [
- "composition"
], - "grades": [
- "1"
]
}
resource required | string Unique identifier of the resource |
destination required | string Unique identifier of the destination of the folder where to move this resource.
This can also be |
{- "destination": "string"
}
{- "id": "string",
- "creator": "string",
- "type": "assignment",
- "privacy": "private",
- "tags": [
- "string"
], - "parent": "string",
- "title": "string",
- "sharingDescription": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "updateDate": "2019-08-24T14:15:22Z",
- "resource": {
- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}, - "capabilities": {
- "canEdit": true,
- "canAddResources": true,
- "canAddFolders": true,
- "canChangePrivacy": true
}, - "subjects": [
- "composition"
], - "grades": [
- "1"
]
}
resource required | string Unique identifier of the resource |
destination required | string Unique identifier of the destination of the folder where to copy this resource.
This can also be |
{- "destination": "string"
}
{- "id": "string",
- "creator": "string",
- "type": "assignment",
- "privacy": "private",
- "tags": [
- "string"
], - "parent": "string",
- "title": "string",
- "sharingDescription": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "updateDate": "2019-08-24T14:15:22Z",
- "resource": {
- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}, - "capabilities": {
- "canEdit": true,
- "canAddResources": true,
- "canAddFolders": true,
- "canChangePrivacy": true
}, - "subjects": [
- "composition"
], - "grades": [
- "1"
]
}
Once a resource library can be published to a class (Assignment.capabilities.canPublishInClass = true
),
this endpoint can be used for the feature "View as student".
It will ensure the teacher has a demo class, then copy the assignment to the demo class.
You can then use POST /classes/{class}/testStudent
to create a testing student account
in the demo class.
resource required | string Unique identifier of the resource |
{- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
], - "state": "active",
- "creator": "5832bf149995c4024bd6de7d",
- "classroom": "58c4725345cd836264f0b29e",
- "creationDate": "2017-06-12T13:56:19.613000Z",
- "dueDate": "2017-07-12T13:56:19.613000Z",
- "scheduledDate": "2017-06-18T13:56:19.613000Z",
- "googleClassroom": {
- "id": "1235665432",
}, - "lti": {
- "id": "12345"
}, - "canvas": {
- "id": "12345",
}, - "submissions": [
- {
- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2017-03-12T00:25:00.748000Z",
- "submissionDate": "2017-03-12T00:25:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
]
}
This endpoint will copy a resource and the underlying resources. The assignment will be created as a draft that can be completed with other options before publishing (e.g. due date, publication date for scheduling, etc.).
resource required | string Unique identifier of the resource |
classroom required | string The destination classroom where the resource will be copied. |
assignment | string An optional destination assignment where the original assignement will be copied. Must be a draft. |
{- "classroom": "string",
- "assignment": "string"
}
{- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
], - "state": "active",
- "creator": "5832bf149995c4024bd6de7d",
- "classroom": "58c4725345cd836264f0b29e",
- "creationDate": "2017-06-12T13:56:19.613000Z",
- "dueDate": "2017-07-12T13:56:19.613000Z",
- "scheduledDate": "2017-06-18T13:56:19.613000Z",
- "googleClassroom": {
- "id": "1235665432",
}, - "lti": {
- "id": "12345"
}, - "canvas": {
- "id": "12345",
}, - "submissions": [
- {
- "id": "58c4955c226ffff257211a90",
- "classroom": "58c4725345cd836264f0b29e",
- "assignment": "58c49068524c03ec576ca43c",
- "creator": "559eb5c7f0d4d5e46d03781d",
- "creationDate": "2017-03-12T00:25:00.748000Z",
- "submissionDate": "2017-03-12T00:25:22.748000Z",
- "attachments": [
- {
- "type": "flat",
- "score": "58c4955a226ffff257211a8d",
- "title": "Hello - Student"
}
], - "googleClassroom": {
- "id": "CgsI-00000000000",
- "state": "turned_in",
}
}
]
}
This endpoint will return an LTI link that can be used to launch Flat for Education. The link, in a context from a class, will ensure the assignment has been copied in the class.
resource required | string Unique identifier of the resource |
{- "ltiUrl": "string"
}
resource required | string Unique identifier of the resource |
type | string (AssignmentType) Enum: "none" "newScore" "scoreTemplate" "sharedWriting" "worksheet" "performance" Type of the assignment |
title | string [ 1 .. 1000 ] characters Title of the assignment |
description | string Description and content of the assignment |
Array of objects (ClassAttachmentCreation) | |
nbPlaybackAuthorized | number or null The number of playback authorized on the scores of the assignment. |
restrictPlayNote | boolean Restrict the ability to get an audio feedback every time a student adds or selects a note. |
restrictToAudioTracks | boolean Restrict the audio source to provided audio tracks on a score. Students won't be able to use the editor playback. |
toolset | string or null The id of the toolset to apply to this assignment. The toolset will be copied to the assignment as a dedicated object to prevent unexpected changes when making modifications to the template toolset. This property can be set to null to delete the linked toolset and switch back to all the tools available for this assignment. |
coverFile | string or null The id of the cover to display |
cover | string or null The URL of the cover to display |
maxPoints | number or null [ 0 .. 10000 ] If set, the grading will be enabled for the assignement with this value as the maximum of points |
releaseGrades | string Enum: "auto" "manual" For worksheets, how grading will work for the assignment:
|
shuffleExercises | boolean Mixing worksheets exercises for each student |
{- "title": "First assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
},
]
}
{- "id": "636a724a89a6eaa0a54c3900",
- "title": "My first assignment",
- "description": "Get started with Flat",
- "maxPoints": 100,
- "attachments": [
- {
- "type": "flat",
- "score": "0000000000000000"
}, - {
- "type": "video",
- "title": "Flat - The online collaborative music notation software",
- "description": "Discover Flat on https://flat.io",
- "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SNbRUiBZ4Uw\" frameborder=\"0\" allowfullscreen></iframe>",
- "thumbnailHeight": 1052,
- "thumbnailWidth": 1868,
- "authorName": "Flat",
}
]
}
group required | string Unique identifier of a Flat group |
{- "id": "58c4955c226ffff257211a00",
- "name": "5th Grade - Teachers",
- "type": "classTeachers",
- "organization": "0000000000000000000000042",
- "creationDate": "2017-07-02T15:02:40.207000Z",
- "usersCount": 2,
- "readOnly": false
}
group required | string Unique identifier of a Flat group |
source | string Enum: "googleClassroom" "microsoftGraph" "clever" Filter the users by their source |
[- {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}
]
Get the list of scores shared with a group.
group required | string Unique identifier of a Flat group |
parent | string Filter the score forked from the score id |
[- {
- "id": "000000000000000000000000",
- "title": "My score",
- "privacy": "private",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
}, - "editHtmlUrl": "string",
- "subtitle": "string",
- "lyricist": "string",
- "arranger": "string",
- "composer": "string",
- "description": "string",
- "tags": [
- "string"
], - "creationType": "original",
- "license": "copyright",
- "licenseText": "string",
- "durationTime": 0,
- "numberMeasures": 0,
- "mainTempoQpm": 0,
- "mainKeySignature": 0,
- "rights": {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true
}, - "collaborators": [
- {
- "aclRead": true,
- "aclWrite": true,
- "aclAdmin": true,
- "isCollaborator": true,
- "id": "string",
- "date": "2019-08-24T14:15:22Z",
- "score": "string",
- "collection": "string",
- "user": {
- "id": "000000000000000000000001",
- "username": "flat",
- "name": "Flat Team",
- "printableName": "Flat Team",
- "badges": [
- "power",
- "staff"
], - "organization": "string",
- "organizationRole": "admin",
- "classRole": "teacher",
- "htmlUrl": "string",
- "bio": "string",
- "registrationDate": "2019-08-24T14:15:22Z",
- "likedScoresCount": 0,
- "followersCount": 0,
- "followingCount": 0,
- "ownedPublicScoresCount": 0,
- "likesCount": 0,
- "playsCount": 0,
- "coverPicture": "string",
- "profileTheme": "string",
- "instruments": [
- "string"
], - "links": {
- "spotifyUrl": "string",
- "youtubeUrl": "string",
- "soundcloudUrl": "string",
- "tiktokUrl": "string",
- "instagramUrl": "string",
- "websiteUrl": "string"
}
}, - "group": {
- "id": "0000000000000000000000043",
- "name": "5th grade",
- "type": "classTeachers",
- "userCount": 24,
- "readOnly": true,
- "organization": "0000000000000000000000042",
- "creationDate": "2015-01-19T00:22:02.387000Z"
}, - "userEmail": "string",
- "invited": true
}
], - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "publicationDate": "2019-08-24T14:15:22Z",
- "scheduledDeletionDate": "2019-08-24T14:15:22Z",
- "highlightedDate": "2019-08-24T14:15:22Z",
- "organization": "string",
- "parentScore": "string",
- "instruments": [
- "string"
], - "instrumentsNames": [
- "string"
], - "samples": [
- "string"
], - "googleDriveFileId": "string",
- "likes": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "comments": {
- "total": 42,
- "unique": 35,
- "weekly": 10,
- "monthly": 30
}, - "views": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "plays": {
- "total": 42,
- "weekly": 10,
- "monthly": 30
}, - "collections": [
- "string"
]
}
]
This method can be used to follow a task progression, for example while a score is being exported.
task required | string Unique identifier for the task |
{- "id": "string",
- "type": "string",
- "state": "created",
- "format": "string",
- "score": "string",
- "progress": {
- "percent": 0,
- "text": "string"
}, - "creationDate": "2019-08-24T14:15:22Z",
- "modificationDate": "2019-08-24T14:15:22Z",
- "doneDate": "2019-08-24T14:15:22Z",
- "result": {
- "url": "string",
- "error": "string"
}, - "errorHistory": [
- "string"
]
}