0.6.0 • Public • Published

    JavaScript (Browser & Node.js) Client for the Flat REST API

    Build Status Greenkeeper badge NPM Version Bower Version

    The Flat API allows you to easily extend the abilities of the Flat Platform, with a wide range of use cases including the following:

    • Creating and importing new music scores using MusicXML or MIDI files
    • Browsing, updating, copying, exporting the user's scores (for example in MP3, WAV or MIDI)
    • Managing educational resources with Flat for Education: creating & updating the organization accounts, the classes, rosters and assignments.

    You can find the API reference including code samples and our OpenAPI Specification at the following url: https://flat.io/developers/api/reference.

    To request some API credentials, please visit https://flat.io/developers.

    This JavaScript package is automatically generated by the Swagger Codegen project.


    For Node.js


    $ npm install flat-api --save


    $ npm install git://github.com/FlatIO/api-client-js --save

    For browser


    $ bower install flat-api

    git / github

    The library also works in the browser environment via npm and browserify. A build is available in the build directory, you can also rebuild the library:

    $ npm install -d && npm run build
    $ ls -1 build

    Then include bundle.js in the HTML pages.

    Getting Started

    Please follow the installation instruction and execute the following JS code:

    var FlatApi = require('flat-api');
    // Configure OAuth2 access token for authorization
    FlatApi.ApiClient.instance.authentications.OAuth2.accessToken = 'YOUR_ACCES_TOKEN';
    var flatAccountApi = new FlatApi.AccountApi();
    flatAccountApi.getAuthenticatedUser(function(error, data, response) {
      if (error) {
      else {
        console.log('Successfully retrieved user profile: ', data);

    Documentation for API Endpoints

    All URIs are relative to https://api.flat.io/v2

    Class Method HTTP request Description
    FlatApi.AccountApi getAuthenticatedUser GET /me Get current user profile
    FlatApi.ClassApi activateClass POST /classes/{class}/activate Activate the class
    FlatApi.ClassApi addClassUser PUT /classes/{class}/users/{user} Add a user to the class
    FlatApi.ClassApi archiveClass POST /classes/{class}/archive Archive the class
    FlatApi.ClassApi copyAssignment POST /classes/{class}/assignments/{assignment}/copy Copy an assignment
    FlatApi.ClassApi createAssignment POST /classes/{class}/assignments Assignment creation
    FlatApi.ClassApi createClass POST /classes Create a new class
    FlatApi.ClassApi createSubmission PUT /classes/{class}/assignments/{assignment}/submissions Create or edit a submission
    FlatApi.ClassApi deleteClassUser DELETE /classes/{class}/users/{user} Remove a user from the class
    FlatApi.ClassApi editSubmission PUT /classes/{class}/assignments/{assignment}/submissions/{submission} Edit a submission
    FlatApi.ClassApi enrollClass POST /classes/enroll/{enrollmentCode} Join a class
    FlatApi.ClassApi getClass GET /classes/{class} Get the details of a single class
    FlatApi.ClassApi getScoreSubmissions GET /scores/{score}/submissions List submissions related to the score
    FlatApi.ClassApi getSubmission GET /classes/{class}/assignments/{assignment}/submissions/{submission} Get a student submission
    FlatApi.ClassApi getSubmissions GET /classes/{class}/assignments/{assignment}/submissions List the students' submissions
    FlatApi.ClassApi listAssignments GET /classes/{class}/assignments Assignments listing
    FlatApi.ClassApi listClassStudentSubmissions GET /classes/{class}/students/{user}/submissions List the submissions for a student
    FlatApi.ClassApi listClasses GET /classes List the classes available for the current user
    FlatApi.ClassApi unarchiveClass DELETE /classes/{class}/archive Unarchive the class
    FlatApi.ClassApi updateClass PUT /classes/{class} Update the class
    FlatApi.CollectionApi addScoreToCollection PUT /collections/{collection}/scores/{score} Add a score to the collection
    FlatApi.CollectionApi createCollection POST /collections Create a new collection
    FlatApi.CollectionApi deleteCollection DELETE /collections/{collection} Delete the collection
    FlatApi.CollectionApi deleteScoreFromCollection DELETE /collections/{collection}/scores/{score} Delete a score from the collection
    FlatApi.CollectionApi editCollection PUT /collections/{collection} Update a collection's metadata
    FlatApi.CollectionApi getCollection GET /collections/{collection} Get collection details
    FlatApi.CollectionApi listCollectionScores GET /collections/{collection}/scores List the scores contained in a collection
    FlatApi.CollectionApi listCollections GET /collections List the collections
    FlatApi.CollectionApi untrashCollection POST /collections/{collection}/untrash Untrash a collection
    FlatApi.GroupApi getGroupDetails GET /groups/{group} Get group information
    FlatApi.GroupApi getGroupScores GET /groups/{group}/scores List group's scores
    FlatApi.GroupApi listGroupUsers GET /groups/{group}/users List group's users
    FlatApi.OrganizationApi createLtiCredentials POST /organizations/lti/credentials Create a new couple of LTI 1.x credentials
    FlatApi.OrganizationApi createOrganizationInvitation POST /organizations/invitations Create a new invitation to join the organization
    FlatApi.OrganizationApi createOrganizationUser POST /organizations/users Create a new user account
    FlatApi.OrganizationApi listLtiCredentials GET /organizations/lti/credentials List LTI 1.x credentials
    FlatApi.OrganizationApi listOrganizationInvitations GET /organizations/invitations List the organization invitations
    FlatApi.OrganizationApi listOrganizationUsers GET /organizations/users List the organization users
    FlatApi.OrganizationApi removeOrganizationInvitation DELETE /organizations/invitations/{invitation} Remove an organization invitation
    FlatApi.OrganizationApi removeOrganizationUser DELETE /organizations/users/{user} Remove an account from Flat
    FlatApi.OrganizationApi revokeLtiCredentials DELETE /organizations/lti/credentials/{credentials} Revoke LTI 1.x credentials
    FlatApi.OrganizationApi updateOrganizationUser PUT /organizations/users/{user} Update account information
    FlatApi.ScoreApi addScoreCollaborator POST /scores/{score}/collaborators Add a new collaborator
    FlatApi.ScoreApi addScoreTrack POST /scores/{score}/tracks Add a new video or audio track to the score
    FlatApi.ScoreApi createScore POST /scores Create a new score
    FlatApi.ScoreApi createScoreRevision POST /scores/{score}/revisions Create a new revision
    FlatApi.ScoreApi deleteScore DELETE /scores/{score} Delete a score
    FlatApi.ScoreApi deleteScoreComment DELETE /scores/{score}/comments/{comment} Delete a comment
    FlatApi.ScoreApi deleteScoreTrack DELETE /scores/{score}/tracks/{track} Remove an audio or video track linked to the score
    FlatApi.ScoreApi editScore PUT /scores/{score} Edit a score's metadata
    FlatApi.ScoreApi forkScore POST /scores/{score}/fork Fork a score
    FlatApi.ScoreApi gerUserLikes GET /users/{user}/likes List liked scores
    FlatApi.ScoreApi getGroupScores GET /groups/{group}/scores List group's scores
    FlatApi.ScoreApi getScore GET /scores/{score} Get a score's metadata
    FlatApi.ScoreApi getScoreCollaborator GET /scores/{score}/collaborators/{collaborator} Get a collaborator
    FlatApi.ScoreApi getScoreCollaborators GET /scores/{score}/collaborators List the collaborators
    FlatApi.ScoreApi getScoreComments GET /scores/{score}/comments List comments
    FlatApi.ScoreApi getScoreRevision GET /scores/{score}/revisions/{revision} Get a score revision
    FlatApi.ScoreApi getScoreRevisionData GET /scores/{score}/revisions/{revision}/{format} Get a score revision data
    FlatApi.ScoreApi getScoreRevisions GET /scores/{score}/revisions List the revisions
    FlatApi.ScoreApi getScoreSubmissions GET /scores/{score}/submissions List submissions related to the score
    FlatApi.ScoreApi getScoreTrack GET /scores/{score}/tracks/{track} Retrieve the details of an audio or video track linked to a score
    FlatApi.ScoreApi getUserScores GET /users/{user}/scores List user's scores
    FlatApi.ScoreApi listScoreTracks GET /scores/{score}/tracks List the audio or video tracks linked to a score
    FlatApi.ScoreApi markScoreCommentResolved PUT /scores/{score}/comments/{comment}/resolved Mark the comment as resolved
    FlatApi.ScoreApi markScoreCommentUnresolved DELETE /scores/{score}/comments/{comment}/resolved Mark the comment as unresolved
    FlatApi.ScoreApi postScoreComment POST /scores/{score}/comments Post a new comment
    FlatApi.ScoreApi removeScoreCollaborator DELETE /scores/{score}/collaborators/{collaborator} Delete a collaborator
    FlatApi.ScoreApi untrashScore POST /scores/{score}/untrash Untrash a score
    FlatApi.ScoreApi updateScoreComment PUT /scores/{score}/comments/{comment} Update an existing comment
    FlatApi.ScoreApi updateScoreTrack PUT /scores/{score}/tracks/{track} Update an audio or video track linked to a score
    FlatApi.UserApi gerUserLikes GET /users/{user}/likes List liked scores
    FlatApi.UserApi getUser GET /users/{user} Get a public user profile
    FlatApi.UserApi getUserScores GET /users/{user}/scores List user's scores

    Documentation for Models

    Documentation for Authorization


    • Type: OAuth
    • Flow: accessCode
    • Authorization URL: https://flat.io/auth/oauth
    • Scopes:
      • account.public_profile: Provides access to the basic person's public profile. Education profiles may be anonymized with this scope, you can request the scope `education_profile` to access to the a basic education account profile.
      • account.education_profile: Provides access to the basic person's education profile and public organization information.
      • scores.readonly: Allows read-only access to all a user's scores. You won't need this scope to read public scores.
      • scores.social: Allow to post comments and like scores
      • scores: Full, permissive scope to access all of a user's scores.
      • collections.readonly: Allow read-only access to a user's collections.
      • collections.add_scores: Allow to add scores to a user's collections.
      • collections: Full, permissive scope to access all of a user's collections.
      • edu.classes: Full, permissive scope to manage the classes.
      • edu.classes.readonly: Read-only access to the classes.
      • edu.assignments: Read-write access to the assignments and submissions.
      • edu.assignments.readonly: Read-only access to the assignments and submissions.
      • edu.admin: Full, permissive scope to manage all the admin of an organization.
      • edu.admin.lti: Access and manage the LTI Credentials for an organization.
      • edu.admin.lti.readonly: Read-only access to the LTI Credentials of an organization.
      • edu.admin.users: Access and manage the users and invitations of the organization.
      • edu.admin.users.readonly: Read-only access to the users and invitations of the organization.




    npm i flat-api

    DownloadsWeekly Downloads






    Unpacked Size

    2.43 MB

    Total Files


    Last publish


    • giersch
    • gierschv