# List submissions GET https://api.prolific.com/api/v1/submissions/ Returns basic information of submissions, including study id, participant id, status and start timestamp. **Filtering and Ordering:** - Filter by status, completion state, dates, and study - Order by start time, reward amount, or study name - Paginate by page_size and page (Default page_size is 20) - Boolean parameters accept multiple formats: 1/0, true/false, yes/no, t/f (case-insensitive) - Date parameters use DD/MM/YYYY format - Status parameters are case-insensitive with underscore normalization Reference: https://beta-docs.prolific.com/api-reference/submissions/get-submissions ## OpenAPI Specification ```yaml openapi: 3.1.1 info: title: List submissions version: endpoint_submissions.GetSubmissions paths: /api/v1/submissions/: get: operationId: get-submissions summary: List submissions description: >- Returns basic information of submissions, including study id, participant id, status and start timestamp. **Filtering and Ordering:** - Filter by status, completion state, dates, and study - Order by start time, reward amount, or study name - Paginate by page_size and page (Default page_size is 20) - Boolean parameters accept multiple formats: 1/0, true/false, yes/no, t/f (case-insensitive) - Date parameters use DD/MM/YYYY format - Status parameters are case-insensitive with underscore normalization tags: - - subpackage_submissions parameters: - name: study in: query description: >- Optional filter by study ID. This is the ID we pass to the survey platform using %STUDY_ID% required: false schema: type: string - name: status in: query description: >- Filter by submission status (case-insensitive). Valid values include ACTIVE, AWAITING_REVIEW, APPROVED, REJECTED, RETURNED, SCREENED_OUT, TIMED-OUT required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersStatus' - name: completed in: query description: >- Filter by completion status. Accepts 1/true/yes/t for completed, 0/false/no/f for incomplete (case-insensitive) required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersCompleted' - name: returned in: query description: >- Filter by returned status. Accepts 1/true/yes/t for returned, 0/false/no/f for not returned (case-insensitive) required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersReturned' - name: awaiting_review in: query description: >- Filter by awaiting review status. Accepts 1/true/yes/t for awaiting review, 0/false/no/f for not awaiting review (case-insensitive) required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersAwaitingReview' - name: approved in: query description: >- Filter by approved status. Accepts 1/true/yes/t for approved, 0/false/no/f for not approved (case-insensitive) required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersApproved' - name: active in: query description: >- Filter by active status. Accepts 1/true/yes/t for active, 0/false/no/f for not active (case-insensitive) required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersActive' - name: timeout in: query description: >- Filter by timed out status. Accepts 1/true/yes/t for timed out, 0/false/no/f for not timed out (case-insensitive) required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersTimeout' - name: rejected in: query description: >- Filter by rejected status. Accepts 1/true/yes/t for rejected, 0/false/no/f for not rejected (case-insensitive) required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersRejected' - name: screened_out in: query description: >- Filter by screened out status. Accepts 1/true/yes/t for screened out, 0/false/no/f for not screened out (case-insensitive) required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersScreenedOut' - name: completeoractive in: query description: >- Filter for submissions that are either completed or active. Accepts 1/true/yes/t to include, 0/false/no/f to exclude (case-insensitive) required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersCompleteoractive' - name: submitted_from in: query description: >- Filter submissions completed after the given date. Format DD/MM/YYYY (e.g., 01/01/2024) required: false schema: type: string - name: submitted_before in: query description: >- Filter submissions completed before the given date. Format DD/MM/YYYY (e.g., 31/12/2024) required: false schema: type: string - name: ordering in: query description: >- Order results by field. Prefix with '-' for descending order. Supported values are started_at, submission_reward, study_name required: false schema: $ref: '#/components/schemas/ApiV1SubmissionsGetParametersOrdering' - name: page_size in: query description: Number of items to return per page (Default 20) required: false schema: type: integer - name: page in: query description: Page number to retrieve (Default 1) required: false schema: type: integer - name: Authorization in: header description: Header authentication of the form `undefined ` required: true schema: type: string responses: '200': description: List submissions content: application/json: schema: $ref: '#/components/schemas/SubmissionListResponse' '400': description: Error content: {} components: schemas: ApiV1SubmissionsGetParametersStatus: type: string enum: - value: ACTIVE - value: AWAITING_REVIEW - value: APPROVED - value: PARTIALLY_APPROVED - value: REJECTED - value: RETURNED - value: SCREENED_OUT - value: TIMED-OUT - value: UNKNOWN ApiV1SubmissionsGetParametersCompleted: type: string enum: - value: '0' - value: '1' - value: 'true' - value: 'false' - value: 'yes' - value: 'no' - value: t - value: f ApiV1SubmissionsGetParametersReturned: type: string enum: - value: '0' - value: '1' - value: 'true' - value: 'false' - value: 'yes' - value: 'no' - value: t - value: f ApiV1SubmissionsGetParametersAwaitingReview: type: string enum: - value: '0' - value: '1' - value: 'true' - value: 'false' - value: 'yes' - value: 'no' - value: t - value: f ApiV1SubmissionsGetParametersApproved: type: string enum: - value: '0' - value: '1' - value: 'true' - value: 'false' - value: 'yes' - value: 'no' - value: t - value: f ApiV1SubmissionsGetParametersActive: type: string enum: - value: '0' - value: '1' - value: 'true' - value: 'false' - value: 'yes' - value: 'no' - value: t - value: f ApiV1SubmissionsGetParametersTimeout: type: string enum: - value: '0' - value: '1' - value: 'true' - value: 'false' - value: 'yes' - value: 'no' - value: t - value: f ApiV1SubmissionsGetParametersRejected: type: string enum: - value: '0' - value: '1' - value: 'true' - value: 'false' - value: 'yes' - value: 'no' - value: t - value: f ApiV1SubmissionsGetParametersScreenedOut: type: string enum: - value: '0' - value: '1' - value: 'true' - value: 'false' - value: 'yes' - value: 'no' - value: t - value: f ApiV1SubmissionsGetParametersCompleteoractive: type: string enum: - value: '0' - value: '1' - value: 'true' - value: 'false' - value: 'yes' - value: 'no' - value: t - value: f ApiV1SubmissionsGetParametersOrdering: type: string enum: - value: started_at - value: '-started_at' - value: submission_reward - value: '-submission_reward' - value: study_name - value: '-study_name' SubmissionShortStatus: type: string enum: - value: RESERVED - value: ACTIVE - value: TIMED-OUT - value: AWAITING REVIEW - value: APPROVED - value: RETURNED - value: REJECTED - value: SCREENED OUT SubmissionShort: type: object properties: id: type: string description: Submission id. participant_id: type: string description: Participant id. status: $ref: '#/components/schemas/SubmissionShortStatus' description: Status of the submission. started_at: type: string format: date-time description: Date started completed_at: type: - string - 'null' format: date-time description: Date completed has_siblings: type: boolean description: >- Whether or not the submission has sibling submissions (sharing the same study). study_code: type: - string - 'null' description: The completion code used by the participant to complete the study. return_requested: type: - string - 'null' format: date-time description: The date and time when a return request for the submission was made. required: - id - participant_id - status - started_at - has_siblings SubmissionListResponse: type: object properties: results: type: array items: $ref: '#/components/schemas/SubmissionShort' description: List of all submissions matching the criteria. required: - results ``` ## SDK Code Examples ```python import requests url = "https://api.prolific.com/api/v1/submissions/" headers = {"Authorization": ""} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.prolific.com/api/v1/submissions/'; const options = {method: 'GET', headers: {Authorization: ''}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.prolific.com/api/v1/submissions/" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.prolific.com/api/v1/submissions/") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = '' response = http.request(request) puts response.read_body ``` ```java HttpResponse response = Unirest.get("https://api.prolific.com/api/v1/submissions/") .header("Authorization", "") .asString(); ``` ```php request('GET', 'https://api.prolific.com/api/v1/submissions/', [ 'headers' => [ 'Authorization' => '', ], ]); echo $response->getBody(); ``` ```csharp var client = new RestClient("https://api.prolific.com/api/v1/submissions/"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", ""); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": ""] let request = NSMutableURLRequest(url: NSURL(string: "https://api.prolific.com/api/v1/submissions/")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```