@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Qualtrics API
@base https://fra1.qualtrics.com/API/v3
@version 0.2
@auth ApiKey X-API-TOKEN in header
@endpoints 8
@toc survey-definitions(1), distributions(3), directories(1), eventsubscriptions(3)

@group survey-definitions
@endpoint GET /survey-definitions/{SurveyId}
@desc Get survey
@required {SurveyId: any # ID of survey (eg. SV_123)}
@returns(200) Survey data

@endgroup

@group distributions
@endpoint GET /distributions
@desc Get distributions for survey
@required {surveyId: any # The survey for which to load the distributions}
@returns(200) Distributions

@endpoint POST /distributions
@desc Generate distribution links
@required {Distribution link generation options: map # Parameters for the link generation}
@returns(200) OK

@endpoint GET /distributions/{DistributionId}/links
@desc Retrieve distribution links
@required {surveyId: any # ID of the survey (eg: SV_123), DistributionId: any # ID of the distribution list}
@returns(200) Generated list of links

@endgroup

@group directories
@endpoint POST /directories/{DirectoryId}/mailinglists/{MailingListId}/contacts
@desc Create contact in mailing list
@required {DirectoryId: any # ID of the qualtrics directory to create the contact to, MailingListId: any # ID of the mailing list, Contact data: map # Contact data}
@returns(200) OK - Contact created

@endgroup

@group eventsubscriptions
@endpoint POST /eventsubscriptions/
@desc Triggers when a response is submitted to a qualtrics survey
@required {WebHookData: map # This is the request body of the webhook}
@returns(200) OK - web hook registered

@endpoint DELETE /eventsubscriptions/
@desc Remove subscription to response event
@required {WebHookData: map # This is the request body of the webhook}
@returns(200)

@endpoint GET /eventsubscriptions/{SubscriptionId}
@desc Get event subscriptions
@required {SubscriptionId: any # ID of event subscription - can be obtained from web hook response}
@returns(200) Event subscriptions

@endgroup

@end
