Python Client for the Flat REST API
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 Python package is automatically generated by the Swagger Codegen project.
Requirements.
Python 2.7 and 3.4+
Installation & Usage
pip install
pip install flat_apipip install git+https://github.com/FlatIO/api-client-python.gitThen import the package:
import flat_apiSetuptools
Install via Setuptools.
python setup.py install --user(or sudo python setup.py install to install the package for all users)
Then import the package:
import flat_apiGetting Started
Please follow the installation procedure above and then run the following:
from __future__ import print_function
import time
import flat_api
from flat_api.rest import ApiException
from pprint import pprint
configuration = flat_api.Configuration()
# Configure your personal access token or OAuth2 access token
configuration.access_token = 'YOUR_ACCESS_TOKEN'
flat_api_client = flat_api.ApiClient(configuration)
# create an instance of the API class
api_instance = flat_api.AccountApi(flat_api_client)
try:
# Get current user profile
api_response = api_instance.get_authenticated_user()
pprint(api_response)
except ApiException as e:
print("Exception when calling AccountApi->get_authenticated_user: %s\n" % e)Documentation for API Endpoints
All URIs are relative to https://api.flat.io/v2
| Class | Method | HTTP request | Description |
|---|---|---|---|
| AccountApi | get_authenticated_user | GET /me | Get current user profile |
| ClassApi | activate_class | POST /classes/{class}/activate | Activate the class |
| ClassApi | add_class_user | PUT /classes/{class}/users/{user} | Add a user to the class |
| ClassApi | archive_class | POST /classes/{class}/archive | Archive the class |
| ClassApi | copy_assignment | POST /classes/{class}/assignments/{assignment}/copy | Copy an assignment |
| ClassApi | create_assignment | POST /classes/{class}/assignments | Assignment creation |
| ClassApi | create_class | POST /classes | Create a new class |
| ClassApi | create_submission | PUT /classes/{class}/assignments/{assignment}/submissions | Create or edit a submission |
| ClassApi | delete_class_user | DELETE /classes/{class}/users/{user} | Remove a user from the class |
| ClassApi | edit_submission | PUT /classes/{class}/assignments/{assignment}/submissions/{submission} | Edit a submission |
| ClassApi | enroll_class | POST /classes/enroll/{enrollmentCode} | Join a class |
| ClassApi | get_class | GET /classes/{class} | Get the details of a single class |
| ClassApi | get_score_submissions | GET /scores/{score}/submissions | List submissions related to the score |
| ClassApi | get_submission | GET /classes/{class}/assignments/{assignment}/submissions/{submission} | Get a student submission |
| ClassApi | get_submissions | GET /classes/{class}/assignments/{assignment}/submissions | List the students' submissions |
| ClassApi | list_assignments | GET /classes/{class}/assignments | Assignments listing |
| ClassApi | list_class_student_submissions | GET /classes/{class}/students/{user}/submissions | List the submissions for a student |
| ClassApi | list_classes | GET /classes | List the classes available for the current user |
| ClassApi | unarchive_class | DELETE /classes/{class}/archive | Unarchive the class |
| ClassApi | update_class | PUT /classes/{class} | Update the class |
| CollectionApi | add_score_to_collection | PUT /collections/{collection}/scores/{score} | Add a score to the collection |
| CollectionApi | create_collection | POST /collections | Create a new collection |
| CollectionApi | delete_collection | DELETE /collections/{collection} | Delete the collection |
| CollectionApi | delete_score_from_collection | DELETE /collections/{collection}/scores/{score} | Delete a score from the collection |
| CollectionApi | edit_collection | PUT /collections/{collection} | Update a collection's metadata |
| CollectionApi | get_collection | GET /collections/{collection} | Get collection details |
| CollectionApi | list_collection_scores | GET /collections/{collection}/scores | List the scores contained in a collection |
| CollectionApi | list_collections | GET /collections | List the collections |
| CollectionApi | untrash_collection | POST /collections/{collection}/untrash | Untrash a collection |
| GroupApi | get_group_details | GET /groups/{group} | Get group information |
| GroupApi | get_group_scores | GET /groups/{group}/scores | List group's scores |
| GroupApi | list_group_users | GET /groups/{group}/users | List group's users |
| OrganizationApi | create_lti_credentials | POST /organizations/lti/credentials | Create a new couple of LTI 1.x credentials |
| OrganizationApi | create_organization_invitation | POST /organizations/invitations | Create a new invitation to join the organization |
| OrganizationApi | create_organization_user | POST /organizations/users | Create a new user account |
| OrganizationApi | list_lti_credentials | GET /organizations/lti/credentials | List LTI 1.x credentials |
| OrganizationApi | list_organization_invitations | GET /organizations/invitations | List the organization invitations |
| OrganizationApi | list_organization_users | GET /organizations/users | List the organization users |
| OrganizationApi | remove_organization_invitation | DELETE /organizations/invitations/{invitation} | Remove an organization invitation |
| OrganizationApi | remove_organization_user | DELETE /organizations/users/{user} | Remove an account from Flat |
| OrganizationApi | revoke_lti_credentials | DELETE /organizations/lti/credentials/{credentials} | Revoke LTI 1.x credentials |
| OrganizationApi | update_organization_user | PUT /organizations/users/{user} | Update account information |
| ScoreApi | add_score_collaborator | POST /scores/{score}/collaborators | Add a new collaborator |
| ScoreApi | add_score_track | POST /scores/{score}/tracks | Add a new video or audio track to the score |
| ScoreApi | create_score | POST /scores | Create a new score |
| ScoreApi | create_score_revision | POST /scores/{score}/revisions | Create a new revision |
| ScoreApi | delete_score | DELETE /scores/{score} | Delete a score |
| ScoreApi | delete_score_comment | DELETE /scores/{score}/comments/{comment} | Delete a comment |
| ScoreApi | delete_score_track | DELETE /scores/{score}/tracks/{track} | Remove an audio or video track linked to the score |
| ScoreApi | edit_score | PUT /scores/{score} | Edit a score's metadata |
| ScoreApi | fork_score | POST /scores/{score}/fork | Fork a score |
| ScoreApi | ger_user_likes | GET /users/{user}/likes | List liked scores |
| ScoreApi | get_group_scores | GET /groups/{group}/scores | List group's scores |
| ScoreApi | get_score | GET /scores/{score} | Get a score's metadata |
| ScoreApi | get_score_collaborator | GET /scores/{score}/collaborators/{collaborator} | Get a collaborator |
| ScoreApi | get_score_collaborators | GET /scores/{score}/collaborators | List the collaborators |
| ScoreApi | get_score_comments | GET /scores/{score}/comments | List comments |
| ScoreApi | get_score_revision | GET /scores/{score}/revisions/{revision} | Get a score revision |
| ScoreApi | get_score_revision_data | GET /scores/{score}/revisions/{revision}/{format} | Get a score revision data |
| ScoreApi | get_score_revisions | GET /scores/{score}/revisions | List the revisions |
| ScoreApi | get_score_submissions | GET /scores/{score}/submissions | List submissions related to the score |
| ScoreApi | get_score_track | GET /scores/{score}/tracks/{track} | Retrieve the details of an audio or video track linked to a score |
| ScoreApi | get_user_scores | GET /users/{user}/scores | List user's scores |
| ScoreApi | list_score_tracks | GET /scores/{score}/tracks | List the audio or video tracks linked to a score |
| ScoreApi | mark_score_comment_resolved | PUT /scores/{score}/comments/{comment}/resolved | Mark the comment as resolved |
| ScoreApi | mark_score_comment_unresolved | DELETE /scores/{score}/comments/{comment}/resolved | Mark the comment as unresolved |
| ScoreApi | post_score_comment | POST /scores/{score}/comments | Post a new comment |
| ScoreApi | remove_score_collaborator | DELETE /scores/{score}/collaborators/{collaborator} | Delete a collaborator |
| ScoreApi | untrash_score | POST /scores/{score}/untrash | Untrash a score |
| ScoreApi | update_score_comment | PUT /scores/{score}/comments/{comment} | Update an existing comment |
| ScoreApi | update_score_track | PUT /scores/{score}/tracks/{track} | Update an audio or video track linked to a score |
| UserApi | ger_user_likes | GET /users/{user}/likes | List liked scores |
| UserApi | get_user | GET /users/{user} | Get a public user profile |
| UserApi | get_user_scores | GET /users/{user}/scores | List user's scores |
Documentation For Models
- Assignment
- AssignmentCopy
- AssignmentCreation
- AssignmentSubmission
- AssignmentSubmissionUpdate
- ClassAttachmentCreation
- ClassCreation
- ClassDetails
- ClassDetailsCanvas
- ClassDetailsClever
- ClassDetailsGoogleClassroom
- ClassDetailsGoogleDrive
- ClassDetailsLti
- ClassRoles
- ClassState
- ClassUpdate
- Collection
- CollectionCapabilities
- CollectionCreation
- CollectionModification
- CollectionPrivacy
- CollectionType
- FlatErrorResponse
- FlatLocales
- GoogleClassroomCoursework
- GoogleClassroomSubmission
- Group
- GroupDetails
- GroupType
- LicenseMode
- LicenseSources
- LmsName
- LtiCredentials
- LtiCredentialsCreation
- MediaAttachment
- MediaScoreSharingMode
- OrganizationInvitation
- OrganizationInvitationCreation
- OrganizationRoles
- ResourceCollaborator
- ResourceCollaboratorCreation
- ResourceRights
- ScoreComment
- ScoreCommentContext
- ScoreCommentCreation
- ScoreCommentUpdate
- ScoreCommentsCounts
- ScoreCreation
- ScoreCreationType
- ScoreDataEncoding
- ScoreDetails
- ScoreFork
- ScoreLicense
- ScoreLikesCounts
- ScoreModification
- ScorePrivacy
- ScoreRevision
- ScoreRevisionCreation
- ScoreRevisionStatistics
- ScoreSource
- ScoreSummary
- ScoreTrack
- ScoreTrackCreation
- ScoreTrackPoint
- ScoreTrackState
- ScoreTrackType
- ScoreTrackUpdate
- ScoreViewsCounts
- UserAdminUpdate
- UserBasics
- UserCreation
- UserDetails
- UserDetailsAdmin
- UserInstruments
- UserPublic
- UserPublicSummary
Documentation For Authorization
OAuth2
- 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_profileto access to the a basic education account profile. - account.email: Provices access to the person's email.
- 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.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
