Synap API (Beta)
    Synap API (Beta)
    • Getting Started
    • Authentication
    • Error Handling
    • Versioning
    • Security
    • API Reference
      • Access Policies
        • Create AccessMigration
        • Create AccessPolicy
        • List AccessPolicies
        • Get AccessPolicy
        • Update AccessPolicy
        • Delete AccessPolicy
        • Create AccessPolicyReset
        • List AvailableAccessPolicies
      • Assignments
        • Get AssignmentFolder
        • Create AssignmentGroupCourseVersion
        • List AssignmentGroupCourseVersions
        • Create AssignmentGroupDataExport
        • Get AssignmentGroupHeadlineInsight
        • Create AssignmentGroup
        • Get AssignmentGroup
        • Update AssignmentGroup
        • Delete AssignmentGroup
        • Get AssignmentHeadlineInsight
        • Get AssignmentItemAudio
        • Update AssignmentItemAudio
        • Get AssignmentItemDocument
        • Update AssignmentItemDocument
        • Get AssignmentItemEmbed
        • Update AssignmentItemEmbed
        • Get AssignmentItemNote
        • Update AssignmentItemNote
        • Create AssignmentItemPulse
        • Get AssignmentItemQuiz
        • Update AssignmentItemQuiz
        • Get AssignmentItemScorm
        • Update AssignmentItemScorm
        • Get AssignmentItemSurvey
        • Update AssignmentItemSurvey
        • Get AssignmentItemTextEntry
        • Update AssignmentItemTextEntry
        • Get AssignmentItemUpload
        • Update AssignmentItemUpload
        • Get AssignmentItemVideo
        • Update AssignmentItemVideo
        • Get AssignmentItemZip
        • Update AssignmentItemZip
        • Create AssignmentManualReview
        • Create AssignmentReattempt
        • Create AssignmentReset
        • Create AssignmentRevocation
        • Delete AssignmentRevocation
        • Get AssignmentScormResult
        • Get Assignment
        • Update Assignment
        • List Assignments
      • Attempts
        • List AttemptCharts
        • List AttemptInsights
        • Create AttemptLock
        • Delete AttemptLock
        • Get AttemptMarkSession
        • List AttemptMarkSessions
        • Create AttemptMarkerEntry
        • Create AttemptMarksSubmission
        • Create AttemptOverride
        • List AttemptOverrides
        • Get AttemptPlayerState
        • List AttemptResultConfigs
        • List AttemptSchedules
        • Get AttemptSchedule
        • Update AttemptSchedule
        • Create AttemptSitting
        • Create AttemptSubmission
        • List AttemptTagLabels
        • Create AttemptTimerReset
        • List AttemptTimers
        • Get AttemptTimer
        • Update AttemptTimer
        • Create Attempt
        • List Attempts
        • Get Attempt
        • Update Attempt
        • Assign Markers
        • Assign Moderating Markers
        • Unassign Moderating Markers
        • Assign Backreaders
        • Unassign Backreaders
        • Assign Escalating Markers
        • Unassign Escalating Markers
        • Assign Auditing Markers
        • Unassign Auditing Markers
        • Assign Provisional Markers
        • Unassign Provisional Markers
        • Update Attempt Responses
        • List EnrichedAttemptOptions
        • List EnrichedAttempts
        • Create ExamPreview
        • Create ExportEnrichedAttempt
        • Get MarkableResponse
        • Update MarkableResponse
        • List MarkableResponses
        • Get PlayerAttempt
        • Update PlayerAttempt
        • Delete PlayerAttempt
        • Get PlayerAudioResponse
        • Update PlayerAudioResponse
        • Get PlayerClozeDragAndDropResponse
        • Update PlayerClozeDragAndDropResponse
        • Get PlayerClozeDropDownResponse
        • Update PlayerClozeDropDownResponse
        • Get PlayerClozeTextResponse
        • Update PlayerClozeTextResponse
        • Get PlayerEmqGroup
        • Get PlayerFileUploadResponse
        • Update PlayerFileUploadResponse
        • Get PlayerFreeTextResponse
        • Update PlayerFreeTextResponse
        • Get PlayerInformationalResponse
        • Update PlayerInformationalResponse
        • Get PlayerMultipleChoiceResponse
        • Update PlayerMultipleChoiceResponse
        • Get PlayerRankedResponse
        • Update PlayerRankedResponse
        • Get PlayerSection
        • Update PlayerSection
        • Get PlayerShortAnswerResponse
        • Update PlayerShortAnswerResponse
        • Get PlayerSingleChoiceResponse
        • Update PlayerSingleChoiceResponse
        • Get PlayerVideoResponse
        • Update PlayerAudioResponse
        • Get QuestionMarkSession
      • Auditing
        • List ActionLogs
        • Get ActionLog
      • Authentication
        • Create ADFS AuthenticationOption
        • Get ADFS AuthenticationOption
        • Update ADFS AuthenticationOption
        • Delete ADFS AuthenticationOption
        • Create Auth0 AuthenticationOption
        • Get Auth0 AuthenticationOption
        • Update Auth0 AuthenticationOption
        • Delete Auth0 AuthenticationOption
        • Create JWT AuthenticationOption
        • Get JWT AuthenticationOption
        • Update JWT AuthenticationOption
        • Delete JWT AuthenticationOption
        • Get Local AuthenticationOption
        • Update Local AuthenticationOption
        • Create LTI1.3 AuthenticationOption
        • Get LTI1.3 AuthenticationOption
        • Update LTI1.3 AuthenticationOption
        • Delete LTI1.3 AuthenticationOption
        • Create SAML AuthenticationOption
        • Get SAML AuthenticationOption
        • Update SAML AuthenticationOption
        • Delete SAML AuthenticationOption
        • List AuthenticationOptions
        • Create BotSession
        • Activate MFA
        • Get MfaConfig
        • Create MFAConfig
        • Create MfaDeactivation
        • Create PersonalAccessToken
        • List PersonalAccessTokens
        • Update PersonalAccessToken
        • Delete PersonalAccessToken
        • List PublicAuthenticationOptions
        • Get Token
        • Delete own UserSession
        • Create ZapierApiKey
        • List ZapierApiKeys
        • Update ZapierApiKey
        • Delete ZapierApiKey
      • Billing
        • Get Billing Info
        • Create ManageBillingSession
        • Get PortalUsage
        • List Subscriptions
        • Get Subscription
      • Certificates
        • Get Certificate
        • List Certificates
        • Create Certificate
        • List PublicCertificates
        • List Templates
      • Collections
        • Create Annotation
        • List Annotations
        • Get Annotation
        • Update Annotation
        • Delete Annotation
        • Create CollectionAccess
        • Delete CollectionAccess
        • Create CollectionFolder
        • List CollectionFolders
        • Get CollectionFolder
        • Update CollectionFolder
        • Delete CollectionFolder
        • Reorder CollectionFolder Items
        • Create CollectionSubFolder
        • Get CollectionSubFolder
        • Update CollectionSubFolder
        • Delete CollectionSubFolder
        • Reorder CollectionSubFolder Items
        • Create CollectionItemAudio
        • List CollectionItemAudio (Use Generic)
        • Get CollectionItemAudio
        • Update CollectionItemAudio
        • Delete CollectionItemAudio
        • Get CollectionItemDocument
        • Update CollectionItemDocument
        • Delete CollectionItemDocument
        • Create CollectionItemDocument
        • Create CollectionItemEmbed
        • List CollectionItemEmbeds (Use Generic)
        • Get CollectionItemEmbed
        • Update CollectionItemEmbed
        • Delete CollectionItemEmbed
        • Create CollectionItemNote
        • List CollectionItemNotes (Use Generic)
        • Get CollectionItemNote
        • Update CollectionItemNote
        • Delete CollectionItemNote
        • Create CollectionItemQuiz
        • List CollectionItems - use generic CollectionItem
        • Get CollectionItemQuiz
        • Update CollectionItemQuiz
        • Delete CollectionItemQuiz
        • Create CollectionItemVideo
        • List CollectionItems - use generic CollectionItem
        • Get CollectionItemVideo
        • Update CollectionItemVideo
        • Delete CollectionItemVideo
        • Create CollectionItemZip
        • List CollectionItems - use generic CollectionItem
        • Get CollectionItemZip
        • Update CollectionItemZip
        • Delete CollectionItemZip
        • List CollectionItems
        • List CollectionMocks
        • Create CollectionProgress
        • List CollectionProgresses
        • Update CollectionProgress
        • List CollectionSubFolders
        • Get CollectionTagBreakdown
        • List Collections
        • Create Collection
        • Get Collection
        • Update Collection
        • Delete Collection
        • Reorder Collection Folders
        • Reorder Collection Items
        • Create Highlight
        • List Highlights
        • Get Highlight
        • Update Highlight
        • Delete Highlight
      • Content Metadata
        • Create AttributeConfig
        • List AttributeConfigs
        • Get AttributeConfig
        • Update AttributeConfig
        • Delete AttributeConfig
        • Create CloneJob
        • Get CloneJob
        • List FacetConfigs
        • List PublicAttributeConfigs
        • Create TagSet
        • List TagSets
        • Get TagSet
        • Update TagSet
        • Delete TagSet
        • Create Tag
        • List Tags
        • Get Tag
        • Update Tag
        • Delete Tag
      • Courses
        • Create CourseFolder
        • List CourseFolders
        • Get CourseFolder
        • Update CourseFolder
        • Delete CourseFolder
        • Update CourseFolder Items
        • Create CourseItemAudio
        • List CourseItemAudio (Use Generic)
        • Get CourseItemAudio
        • Update CourseItemAudio
        • Delete CourseItemAudio
        • Create CourseItemDocument
        • List CourseItemDocument (Use Generic)
        • Get CourseItemDocument
        • Update CourseItemDocument
        • Delete CourseItemDocument
        • Create CourseItemEmbed
        • List CourseItemEmbed (Use Generic)
        • Get CourseItemEmbed
        • Update CourseItemEmbed
        • Delete CourseItemEmbed
        • Create CourseItemNote
        • List CourseItemNote (Use Generic)
        • Get CourseItemNote
        • Update CourseItemNote
        • Delete CourseItemNote
        • Create CourseItemQuiz
        • List CourseItemQuiz (Use Generic)
        • Get CourseItemQuiz
        • Update CourseItemQuiz
        • Delete CourseItemQuiz
        • Create CourseItemScorm
        • List CourseItemScorm (Use Generic)
        • Get CourseItemScorm
        • Update CourseItemScorm
        • Delete CourseItemScorm
        • Create CourseItemSurvey
        • List CourseItemSurvey (Use Generic)
        • Get CourseItemSurvey
        • Update CourseItemSurvey
        • Delete CourseItemSurvey
        • Create CourseItemTextEntry
        • List CourseItemTextEntry (Use Generic)
        • Get CourseItemTextEntry
        • Update CourseItemTextEntry
        • Delete CourseItemTextEntry
        • Create CourseItemUpload
        • List CourseItemUpload (Use Generic)
        • Get CourseItemUpload
        • Update CourseItemUpload
        • Delete CourseItemUpload
        • Create CourseItemVideo
        • List CourseItemVideo (Use Generic)
        • Get CourseItemVideo
        • Update CourseItemVideo
        • Delete CourseItemVideo
        • Create CourseItemZip
        • List CourseItemZip (Use Generic)
        • Get CourseItemZip
        • Update CourseItemZip
        • Delete CourseItemZip
        • List CourseItems
        • Create Course
        • Get Course
        • Update Course
        • Delete Course
        • Reorder Course Folders
        • Reorder Course Items
      • Exams
        • Create AttemptRevokeReversal
        • List AttemptRevokeReversals
        • Get AttemptRevokeReversal
        • Update AttemptRevokeReversal
        • Delete AttemptRevokeReversal
        • Get ExamAttemptHeadlineInsight
        • Create ExamCandidateExport
        • Get ExamHall
        • List ExamQuestionStats
        • Create ExamQuestionStatsExport
        • Create ExamV2
        • Find ExamV2s
        • Get ExamV2
        • Update ExamV2
        • Delete ExamV2
        • Create Internal Markers Group
        • Set Shared Markers Group
        • Create Internal Moderating Markers Group
        • Set Shared Moderating Markers Group
        • Set Shared Escalating Markers Group
        • Set Shared Auditing Markers Group
        • Create Internal Escalating Markers Group
        • Create Internal Auditing Markers Group
        • Create Internal BackReading Markers Group
        • Set Shared BackReading Markers Group
        • Update Exam Section
        • Creates a new draft version of the underlying quiz
        • Discards the current draft quiz and replaces it with the latest published version.
        • Sets a quiz as the current published version. New attempts for this exam will use the publishedVersion quiz.
        • Create ExamineeNotification
        • List MarkersInboxItems
      • Insights
        • Get Chart
        • List CustomInsights
        • List InsightsTagBreakdowns
      • Integrations
        • Create Integration
        • Get Integration
        • Update Integration
        • Delete Integration
      • Library
        • Create ContentEmbedDatum
        • Create Content
        • Get Content
        • Update Content
        • Delete Content
        • Create File
        • Get File
        • Get Note
        • Delete Note
        • Update Note
        • Create Note
        • Create ScormCourse
        • Get ScormCourse
        • Update ScormCourse
        • Delete ScormCourse
        • Create SurveyItem
        • Get SurveyItem
        • Update SurveyItem
        • Delete SurveyItem
        • Create SurveyPage
        • Get SurveyPage
        • Update SurveyPage
        • Delete SurveyPage
        • Update Survey Page Items
        • Create SurveyResponse
        • Create Survey
        • Get Survey
        • Update Survey
        • Delete Survey
        • Update Survey Pages
      • Marking
        • Create MarkingEntry
        • List MarkingEntries
        • Update MarkingEntry
        • Get MarkingSession
        • Update MarkingSession
        • List MarkingSessions
        • Create MarkingState
        • List MarkingStates
        • Get MarkingState
        • Update MarkingState
        • Delete MarkingState
      • Mobile
        • Create MobileAttempt
        • List MobileAttempts
        • Get MobileAttempt
        • Update MobileAttempt
        • Create MobileCollectionItem
        • List MobileCollectionItems
        • Get MobileCollectionItem
        • Update MobileCollectionItem
        • Delete MobileCollectionItem
        • List Collections
        • Get Collection
        • List MobileResponses
        • Get MobileResponse
        • Update MobileResponse
        • Get Session
        • Get MobileSpacedLearning
        • Update MobileSpacedLearning
        • Add MobileStudyItems
        • Remove MobileStudyItems
        • Create MobileUser
        • Get MobileUser
      • Notifications
        • Get BackgroundJob
        • Create GenericNotification
        • List NotificationGroups
        • Get TransactionalEmail
        • List TransactionalEmails
      • Portals
        • Get Portal
        • Update Portal
        • Create SubPortal
        • List SubPortals
        • Get SubPortal
        • Update SubPortal
        • Delete SubPortal
        • Create WebhookSubscription
        • List WebhookSubscriptions
        • Get WebhookSubscription
        • Update WebhookSubscription
        • Delete WebhookSubscription
      • Proctoring
        • Get ExternalProctorSessionResult
        • Create ExternalProctorSession
        • List ProctorCaptures
        • List ProctorEventLogs
        • List ProctorReviews
        • Create ProctorReview
        • Get ProctorSession
        • Create ProctorSession
      • Quizzes
        • Create EmqGroupExport
        • Create EmqGroupImportValidation
        • Create EmqGroupImport
        • Create GenerateTestJob
        • Get GenerateTestJob
        • Create GeneratedTest
        • Create QuestionExport
        • Create QuestionImportValidation
        • Create QuestionImport
        • Create QuizEmqGroup
        • Get QuizEmqGroup
        • Update QuizEmqGroup
        • Delete QuizEmqGroup
        • Update quiz section questions.
        • Get QuizPdfExport
        • Create QuizQuestionAudioRecording
        • List QuizQuestionAudioRecording
        • Get QuizQuestionAudioRecording
        • Update QuizQuestionAudioRecording
        • Delete QuizQuestionAudioRecording
        • Create QuizQuestionClozeDragAndDrop
        • List QuizQuestionClozeDragAndDrop
        • Get QuizQuestionClozeDragAndDrop
        • Update QuizQuestionClozeDragAndDrop
        • Delete QuizQuestionClozeDragAndDrop
        • Create QuizQuestionClozeDropDown
        • List QuizQuestionClozeDropDown
        • Get QuizQuestionClozeDropDown
        • Update QuizQuestionClozeDropDown
        • Delete QuizQuestionClozeDropDown
        • Create QuizQuestionClozeText
        • List QuizQuestionClozeText
        • Get QuizQuestionClozeText
        • Update QuizQuestionClozeText
        • Delete QuizQuestionClozeText
        • Create QuizQuestionFileUpload
        • List QuizQuestionFileUpload
        • Get QuizQuestionFileUpload
        • Update QuizQuestionFileUpload
        • Delete QuizQuestionFileUpload
        • Create QuizQuestionFreeText
        • List QuizQuestionFreeText
        • Get QuizQuestionFreeText
        • Update QuizQuestionFreeText
        • Delete QuizQuestionFreeText
        • Create QuizQuestionInformational
        • List QuizQuestionInformational
        • Get QuizQuestionInformational
        • Update QuizQuestionInformational
        • Delete QuizQuestionInformational
        • Create QuizQuestionMultipleCorrect
        • List QuizQuestionMultipleCorrect
        • Get QuizQuestionMultipleCorrect
        • Update QuizQuestionMultipleCorrect
        • Delete QuizQuestionMultipleCorrect
        • Create QuizQuestionRanked
        • List QuizQuestionRanked
        • Get QuizQuestionRanked
        • Update QuizQuestionRanked
        • Delete QuizQuestionRanked
        • Create QuizQuestionShortAnswer
        • List QuizQuestionShortAnswer
        • Get QuizQuestionShortAnswer
        • Update QuizQuestionShortAnswer
        • Delete QuizQuestionShortAnswer
        • Create QuizQuestionSingleCorrect
        • List QuizQuestionSingleCorrect
        • Get QuizQuestionSingleCorrect
        • Update QuizQuestionSingleCorrect
        • Delete QuizQuestionSingleCorrect
        • Create QuizQuestionVideoRecording
        • List QuizQuestionVideoRecording
        • Get QuizQuestionVideoRecording
        • Update QuizQuestionVideoRecording
        • Delete QuizQuestionVideoRecording
        • Create QuizSection
        • List QuizSections
        • Get QuizSection
        • Update QuizSection
        • Delete QuizSection
        • Update quiz section questions.
        • Add quiz section questions.
        • Create QuizSetupValidation
        • Get QuizTagBreakdown
        • Create Quiz
        • Get Quiz
        • Update Quiz
        • Delete Quiz
        • Update Quiz Questions
        • Update Quiz Sections
        • Update Quiz Content Sources
        • Update Quiz Settings Source
        • Get Test
        • Delete Test
        • List Tests
      • Revision
        • List QuestionSummaries
        • Get Study
        • Update Study
        • List Studies
        • Create Study
        • Add StudyItems
        • Remove StudyItems
        • Get StudyItem
        • Delete StudyItem
        • Create StudyItem
      • Search
        • List SearchFilterConfigs
        • Search
      • Shop
        • Create CheckoutSession
        • Get CheckoutSession
        • Update CheckoutSession
        • List LegacyAccessUpgradeOptions
        • Create PortalStore
        • List PortalStores
        • Get PortalStore
        • Update PortalStore
        • Delete PortalStore
        • Create ProductList
        • List ProductLists
        • Get ProductList
        • Update ProductList
        • Delete ProductList
        • Add Products
        • Remove Products
        • Create Product
        • List Products
        • Get Product
        • Update Product
        • Delete Product
        • Get StoreOffer
      • User Groups
        • Create UserGroupExport
        • Create UserGroupLinkAccess
        • List UserGroupLinkSettings
        • Create UserGroupLinkSetting
        • Get UserGroupLinkSetting
        • Update UserGroupLinkSetting
        • Validate UserGroupLink
        • Get UserGroupLink
        • Create UserGroup
        • List UserGroups
        • Get UserGroup
        • Update UserGroup
        • Delete UserGroup
        • Add Users to UserGroup
        • Remove Users from UserGroup
        • Create UserImport
        • List UserTypes
        • Get UserType
        • Update UserType
      • User Feedback
        • Create FlagExport
        • Create Flag
        • List Flags
        • Get Flag
        • Update Flag
        • Create TipSuggestion
        • List TipSuggestions
      • Users
        • Create AccountClosureRequest
        • Create AccountClosure
        • Update AccountClosure
        • Create BotUser
        • List BotUsers
        • List Documents
        • Create EmailVerification
        • Update EmailVerification
        • Create ExternalExamSitting
        • List ExternalExamSittings
        • Update ExternalExamSitting
        • Create GeneratedAccount
        • Create InviteExport
        • List Invites
        • Get Invite
        • Update Invite
        • Create LearningRecordExport
        • Create LearningRecord
        • List LearningRecords
        • Get LearningRecord
        • Update LearningRecord
        • Delete LearningRecord
        • Get App Login QR Code
        • Create MarketingConsent
        • Delete MarketingConsent
        • Create PasswordResetRequest
        • Create PasswordReset
        • Get PasswordReset
        • Update PasswordReset
        • Get Session Context
        • Get UserAccount
        • List UserEngagement
        • Create UserPassword
        • Create UserRegistration
        • Get UserStat
        • List Users
        • Get User
        • Update User
        • Delete User
    • Cookbook
      • Register a User
      • Get Exam Result
      • Proctor Integration
        • Introduction
        • Launch
        • Complete
        • Cancel
        • Review Status

    Security

    Encryption#

    All requests to the Synap API must be made over HTTPS. Any attempt to access the API over HTTP will be rejected. This ensures that data in transit is encrypted and protected from man-in-the-middle attacks.
    In addition to HTTPS for data in transit, all data stored by Synap is encrypted at rest. We adhere to industry-standard encryption practices to safeguard your information.

    Authentication#

    The vast majority of endpoints within the the Synap API require authorisation. Authorisation is handled through Personal Access Tokens (PATs). A missing, invalid or revoked PAT will result in a 401 Unauthorized error.
    The Synap API has select few endpoints that enable "public" access without authorisation. This is because at Synap, we dogfood our API, i.e. the same API is used to power the Synap web and mobile applications. Given that your own users need to visit your Portal first as "unauthorised" prior to entering credentials and authenticating themselves, the API allows such visitors to load the basic details relating to Portal, sufficient for loading the Welcome page along with your branding.
    These "public" endpoints are subject to stricter rate-limits and maybe subject to "captcha" challenges. There are currently no particular use-cases for using these endpoints when building integrations. This means that we do not expect you, as a third-party developer to make use of the public endpoints, although we cannot strictly-speaking restrict your access outside of rate-limits, CORS or captchas.

    Token Security#

    PATs are long-lived and do not expire automatically. Treat these tokens as sensitive credentials; they should be stored securely and never hard-coded into client-side code or version control systems. If a PAT is suspected to be compromised, it can be revoked immediately via the Synap platform.

    Permission Management#

    Access to API resources is governed by a flexible permission system built into the Synap platform. Permissions are customized by your organisation on a per-group basis, and users are granted privileges based on their group memberships. Actions are constrained by the policies defined by your organisation. These privileges are upheld by the use of PATs and Subject-User headers in requests.

    Rate Limiting#

    To protect against abuse and ensure fair usage, the Synap API enforces rate limits on incoming requests. Exceeding the rate limit will result in temporary throttling or rejection of requests.

    Request Logging#

    Synap maintains logs of API requests for a predefined period. These logs are useful for auditing, troubleshooting, and identifying potential issues within your integration. Our engineers do from time-to-time review these logs as part of support requests, or proactively when problems are suspected with the API. Please note that sensitive data, such as your PAT and PIDs are automatically scrubbed prior to being dispatch to our observability systems.

    Security Monitoring#

    Synap actively monitors API usage for suspicious activity. While we take measures to detect and mitigate potential threats, it is your organisation's responsibility to enforce best practices in API usage, token management and correctly bounding your privileged resources to appropriate users.

    Critical Security Patches#

    To protect your resources, Synap may introduce critical security patches to the API even if they are considered breaking changes. While we aim to minimize disruption, the security of your data and operations is our top priority. In any such event you will receive communications from Synap detailing the cause, concerns and remediations, facilitating your organisation with the change where needed.

    Cross-Origin Resource Sharing#

    The Synap API is designed for programmatic extension and use-case customisation. It is strictly prohibited that you use this API to build a competing User Interface experience using this API. Response headers from the Synap API will not include the necessary CORS Headers to enable such integrations, and likely result in an error on most modern-browsers.
    If your organisation has a legitimate use-case that you believe should exempt your integration from this restriction, please get in touch with your account manager so that we can have a discussion.
    Modified at 2024-08-20 13:03:42
    Previous
    Versioning
    Next
    Create AccessMigration
    Built with