> ## Documentation Index
> Fetch the complete documentation index at: https://docs.launchpointhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Submissions

> Returns content submitted by creators for review, newest first. Use `status=in_review` to fetch your review queue.



## OpenAPI

````yaml GET /campaigns/{campaign_id}/submissions
openapi: 3.1.0
info:
  title: Launchpoint Buyer API
  description: The API Launchpoint brands and agencies can use to manage their campaigns
  license:
    name: MIT
    identifier: MIT
  version: 2026-07
servers:
  - url: https://api.launchpoint.sh/2026-07
security:
  - bearerAuth: []
tags:
  - name: Campaigns
    description: >-
      Create and manage campaigns, review creators and content, and read
      performance data
paths:
  /campaigns/{campaign_id}/submissions:
    get:
      tags:
        - Campaigns
      summary: List submissions
      description: >-
        Returns content submitted by creators for review, newest first. Use
        `status=in_review` to fetch your review queue.
      operationId: listSubmissions
      parameters:
        - $ref: '#/components/parameters/CampaignId'
        - name: status
          in: query
          description: Filter by review status
          required: false
          schema:
            $ref: '#/components/schemas/SubmissionStatus'
        - name: creator_id
          in: query
          description: Only submissions from this creator
          required: false
          schema:
            type: string
        - name: task_id
          in: query
          description: Only submissions for this task
          required: false
          schema:
            type: string
            format: uuid
        - name: submitted_after
          in: query
          description: Only submissions submitted at or after this time (ISO 8601)
          required: false
          schema:
            type: string
            format: date-time
        - name: submitted_before
          in: query
          description: Only submissions submitted before this time (ISO 8601)
          required: false
          schema:
            type: string
            format: date-time
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/StartingAfter'
      responses:
        '200':
          description: A page of submissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmissionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    CampaignId:
      name: campaign_id
      in: path
      description: The campaign ID
      required: true
      schema:
        type: string
        format: uuid
    Limit:
      name: limit
      in: query
      description: Number of items to return per page
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
    StartingAfter:
      name: starting_after
      in: query
      description: Opaque pagination cursor from a previous response's `next_cursor`
      required: false
      schema:
        type: string
  schemas:
    SubmissionStatus:
      type: string
      description: >-
        `in_review`: waiting on your decision (a rejected submission returns
        here when the creator submits a revision). `approved`: cleared to post.
        `rejected`: you sent it back for changes. `failed`: automatic validation
        or processing failed — see `failure_reason`. `post_deleted`: the content
        was posted and later taken down.
      enum:
        - in_review
        - approved
        - rejected
        - failed
        - post_deleted
      example: in_review
    SubmissionList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Submission'
        has_more:
          type: boolean
        next_cursor:
          type:
            - string
            - 'null'
    Submission:
      type: object
      description: Content a creator submitted for review before posting
      properties:
        id:
          type: string
          format: uuid
        creator_id:
          type: string
          example: cr_8f14e45fceea
        creator_username:
          type: string
          example: somecreator
        task_id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/SubmissionStatus'
        media_type:
          type: string
          enum:
            - video
            - carousel
          example: video
        media_url:
          type:
            - string
            - 'null'
          format: uri
          description: URL of the submitted video, or the first image of a carousel
        thumbnail_url:
          type:
            - string
            - 'null'
          format: uri
        revision_count:
          type: integer
          description: >-
            How many times the creator has re-submitted this content after a
            rejection. 0 for an initial submission that has never been sent
            back.
          example: 1
        feedback:
          type:
            - string
            - 'null'
          description: The most recent rejection feedback sent to the creator, if any
        failure_reason:
          type:
            - string
            - 'null'
          description: >-
            When `status` is `failed`, a short explanation of what went wrong
            (e.g. media could not be processed, or the required post could not
            be verified). Null for every other status.
        submitted_at:
          type:
            - string
            - 'null'
          format: date-time
        reviewed_at:
          type:
            - string
            - 'null'
          format: date-time
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
          description: The HTTP status code
        message:
          type: string
          description: >-
            Human-readable explanation, naming the offending field where
            applicable
        code:
          type: string
          description: >-
            Machine-readable error code, e.g. `invalid_state_transition`,
            `missing_scope`, `already_reviewed`
          example: invalid_state_transition
  responses:
    Unauthorized:
      description: The API key is missing, unknown, or revoked (`unauthenticated`)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: >-
        The resource does not exist or is not visible to this API key
        (`not_found`)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: >-
        The rate limit was exceeded (`rate_limited`). Wait for the number of
        seconds in the `Retry-After` header before retrying.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
        X-RateLimit-Limit:
          description: Requests allowed per minute for this key.
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Requests remaining in the current window.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````