Prolific submissionFeedbackUpload API

The submissionFeedbackUpload API from Prolific — 1 operation(s) for submissionfeedbackupload.

Operations 1

GET /api/v1/submissions/signals/upload-url/{filename} Request a feedback upload URL #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/prolific-submissionfeedbackupload-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

prolific-submissionfeedbackupload-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference aiTaskBuilder Submission Feedback Upload API
  version: 1.0.0
servers:
- url: https://api.prolific.com
  description: Production
tags:
- name: submissionFeedbackUpload
paths:
  /api/v1/submissions/signals/upload-url/{filename}:
    get:
      operationId: get-submission-feedback-upload-url
      summary: Request a feedback upload URL
      description: "Request a temporary, pre-signed URL to upload a feedback file for your completed studies.\n\nThis is the first step of a two-step upload process:\n  1. Call this endpoint to receive a pre-signed `upload_url`.\n  2. Upload your file directly to that URL with an HTTP `PUT` request before it expires.\n\n<Note>\n  Supported file formats are CSV, XLS, XLSX, JSON, TXT and PDF. The maximum file size is 5GB. Please check the [supported file formats](/api-reference/submission-feedback-upload#supported-file-formats) section for more details.\n</Note>"
      tags:
      - submissionFeedbackUpload
      parameters:
      - name: filename
        in: path
        description: The name of the file you want to upload, including its extension (e.g. `participant_feedback.csv`).
        required: true
        schema:
          type: string
      - name: workspace_id
        in: query
        description: The ID of the Prolific workspace the feedback belongs to.
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: 'The Prolific API uses API token to authenticate requests. You can create an API token directly from your settings.


          Your API token does not have an expiry date and carries full permission, so be sure to keep them secure.


          If your token is leaked, delete it and create a new one directly in the app.


          In your requests add `Authorization` header with the value `Token <your token>`.'
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Pre-signed upload URL generated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submission_Feedback_Upload_GetSubmissionFeedbackUploadUrl_Response_201'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Submission_Feedback_Upload_GetSubmissionFeedbackUploadUrl_Response_201:
      type: object
      properties:
        upload_url:
          type: string
          description: The temporary, pre-signed URL to upload your file to with an HTTP `PUT` request.
        http_method:
          $ref: '#/components/schemas/ApiV1SubmissionsSignalsUploadUrlFilenameGetResponsesContentApplicationJsonSchemaHttpMethod'
          description: The HTTP method to use when uploading to `upload_url`.
        expires_at:
          type: string
          format: date-time
          description: The time at which the pre-signed `upload_url` expires.
      title: Submission Feedback Upload_GetSubmissionFeedbackUploadUrl_Response_201
    ApiV1SubmissionsSignalsUploadUrlFilenameGetResponsesContentApplicationJsonSchemaHttpMethod:
      type: string
      enum:
      - PUT
      description: The HTTP method to use when uploading to `upload_url`.
      title: ApiV1SubmissionsSignalsUploadUrlFilenameGetResponsesContentApplicationJsonSchemaHttpMethod
    ErrorDetailDetail:
      oneOf:
      - type: string
      - type: array
        items:
          type: string
      - $ref: '#/components/schemas/ErrorDetailDetail2'
      description: Error detail
      title: ErrorDetailDetail
    ErrorDetailDetail2:
      type: object
      properties:
        any_field:
          type: array
          items:
            type: string
          description: Name of the field with a validation error and as a value an array with the error descriptions
      description: All fields with validation errors
      title: ErrorDetailDetail2
    ErrorDetail:
      type: object
      properties:
        status:
          type: integer
          description: Status code as in the http standards
        error_code:
          type: integer
          description: Internal error code
        title:
          type: string
          description: Error title
        detail:
          $ref: '#/components/schemas/ErrorDetailDetail'
          description: Error detail
        additional_information:
          type: string
          description: Optional extra information
        traceback:
          type: string
          description: Optional debug information
        interactive:
          type: boolean
      required:
      - status
      - error_code
      - title
      - detail
      title: ErrorDetail
    Error:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
      required:
      - error
      title: Error
  securitySchemes:
    token:
      type: apiKey
      in: header
      name: Authorization
      description: 'The Prolific API uses API token to authenticate requests. You can create an API token directly from your settings.


        Your API token does not have an expiry date and carries full permission, so be sure to keep them secure.


        If your token is leaked, delete it and create a new one directly in the app.


        In your requests add `Authorization` header with the value `Token <your token>`.'