> ## 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.

# Reject media

> Reject one media item in your review queue. The creator gets a notification, sees your message, and can send a new revision.

Repeating the decision the media already has returns the media as it stands, so retries are safe. The opposite decision returns `409` with `code: media_already_reviewed`. Media outside your review queue returns `409` with `code: media_not_reviewable`.

Only a brand API key can decide. An agency API key gets `403` with `code: agency_key_not_supported`.



## OpenAPI

````yaml /api-reference/openapi.json post /media/{id}/reject
openapi: 3.0.4
info:
  title: Launchpoint Public API
  version: 1.0.0
  description: >-
    **Private preview.** The Launchpoint Public API is in private preview and
    available only to trusted partners we work with directly. Access is not
    self-serve. Email hi@launchpointhq.com to ask about access.


    REST API for Launchpoint brands and agencies. Use an API key in the
    `x-api-key` header to authenticate.


    ## Requirements

    - Public API access must be enabled for the company. During private preview,
    access is limited to trusted partners.

    - Create and manage API keys in Dashboard → Settings → Developer.


    ## Creator privacy

    - Responses never include creator email addresses. Creator phone numbers are
    null when no number is stored or the workspace does not have access to
    creator contact details.


    ## Rate limits

    - Default: **100 requests per minute** per API key.

    - Approved partner accounts: **400 requests per minute**.

    - Every response includes `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and
    `X-RateLimit-Reset`. Requests over the limit return `429`.


    ## Errors

    - Errors use `{ "error": "<message>" }` with the matching HTTP status. Some
    endpoints also include a `code`.


    ## Timestamps

    - Timestamps are Unix timestamps in milliseconds unless a field says
    otherwise.


    ## Pagination

    - Most list endpoints accept `page` and `limit` and return `{ data, page,
    total }`. Some also return `totalPages`.

    - `scope=company` is the default. A parent agency key can pass
    `scope=agency` on supported routes to include its own data and linked
    brands.
servers:
  - url: https://dashboard.launchpointhq.com/api/v1
    description: Live API server
security:
  - apiKeyAuth: []
tags:
  - name: Deals
    description: Public creator opportunities across Launchpoint
  - name: Programs
    description: Programs and campaign management
  - name: Posts
    description: Posts and social content
  - name: Analytics
    description: KPIs and performance metrics
  - name: Payouts
    description: Payouts, balances, and pending creator funds
  - name: Contracts
    description: Contracts and creator agreements
  - name: Creators
    description: Creator profiles and metrics
  - name: Applications
    description: Creator applications to Canvas programs
  - name: Messages
    description: Read and send creator messages
  - name: Onboarding
    description: 'Creator onboarding: status, messages, and proof review'
  - name: Media review
    description: >-
      Review the media creators send before they post: queue, status, approve,
      and reject
paths:
  /media/{id}/reject:
    post:
      tags:
        - Media review
      summary: Reject media
      description: >-
        Reject one media item in your review queue. The creator gets a
        notification, sees your message, and can send a new revision.


        Repeating the decision the media already has returns the media as it
        stands, so retries are safe. The opposite decision returns `409` with
        `code: media_already_reviewed`. Media outside your review queue returns
        `409` with `code: media_not_reviewable`.


        Only a brand API key can decide. An agency API key gets `403` with
        `code: agency_key_not_supported`.
      parameters:
        - $ref: '#/components/parameters/ScopeParam'
        - in: path
          name: id
          required: true
          schema:
            type: string
            format: uuid
          description: ID of the media
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - message
              properties:
                message:
                  type: string
                  minLength: 1
                  maxLength: 1000
                  description: Shown to the creator. Say what to fix.
                revisionId:
                  type: string
                  format: uuid
                  description: >-
                    Optional. The `revisionId` you reviewed. The decision fails
                    with `409` and `code: media_newer_revision` when the creator
                    has sent a newer revision.
      responses:
        '200':
          description: Media rejected and creator notified
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/MediaReviewItem'
        '400':
          description: Invalid media id, message, or revision id
        '403':
          description: >-
            The program is read-only for this API key, or `code:
            agency_key_not_supported`
        '404':
          description: Media not found
        '409':
          description: >-
            `code: media_already_reviewed`, `media_not_reviewable`, or
            `media_newer_revision`
components:
  parameters:
    ScopeParam:
      in: query
      name: scope
      required: false
      schema:
        type: string
        enum:
          - company
          - agency
        default: company
      description: >-
        Choose the data scope. `company` (default) limits results to the API key
        company's data. `agency` includes the parent agency and its linked
        brands. `scope=agency` requires a parent agency key; other keys receive
        `403`.
  schemas:
    MediaReviewItem:
      type: object
      required:
        - id
        - programId
        - creatorId
        - revisionId
        - media
        - status
        - rejectionComments
        - submittedAt
        - reviewedAt
      properties:
        id:
          type: string
          format: uuid
        programId:
          type: string
          format: uuid
        creatorId:
          type: string
          description: Opaque creator id, the same as in `/creators`
        revisionId:
          type: string
          format: uuid
          nullable: true
          description: >-
            The newest revision of the media. Send it back with a decision so
            that the decision fails if the creator sent a newer revision after
            you read this one.
        media:
          type: object
          required:
            - kind
            - mediaUrl
            - thumbnailUrl
            - carouselMediaUrls
          properties:
            kind:
              type: string
              enum:
                - video
                - carousel
            mediaUrl:
              type: string
              nullable: true
              description: >-
                Link that downloads the video file. Null unless media links are
                turned on for your workspace (email hi@launchpointhq.com). The
                link does not expire; do not share it.
            thumbnailUrl:
              type: string
              nullable: true
              description: >-
                Link to the preview image. Null under the same rule as
                `mediaUrl`.
            carouselMediaUrls:
              type: array
              items:
                type: string
              description: >-
                Links to the images of a carousel. Empty for a video, and empty
                under the same rule as `mediaUrl`.
        status:
          type: string
          enum:
            - pending_review
            - approved
            - rejected
            - not_reviewable
          description: >-
            `pending_review`: the media is in your review queue, so approve and
            reject can act on it. `not_reviewable`: the media has no decision
            and is not in your queue, for example while the managing agency has
            not passed it. Only a read of one item returns it.
        rejectionComments:
          type: string
          nullable: true
          description: The message the creator got. Null unless the status is `rejected`.
        submittedAt:
          type: integer
          format: int64
          nullable: true
          description: When the creator sent the newest revision, in Unix milliseconds
        reviewedAt:
          type: integer
          format: int64
          nullable: true
          description: When the media was approved or rejected, in Unix milliseconds
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key created in Dashboard → Settings → Developer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.