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

# List your clips on a campaign

> Returns the clips that you submitted to one campaign, newest first. A campaign that your API key cannot submit to returns 404.



## OpenAPI

````yaml /creator-api/openapi.json get /campaigns/{campaign_id}/clips
openapi: 3.1.0
info:
  title: Clipstake Creator API
  description: >-
    Submit your Instagram and X posts as clips to the campaigns that ClipStake
    opened to your account, and follow your clips.
  version: 0.1.0
servers:
  - url: https://app.clipstake.com/api/v1/creator
security: []
paths:
  /campaigns/{campaign_id}/clips:
    get:
      tags:
        - Clips
      summary: List your clips on a campaign
      description: >-
        Returns the clips that you submitted to one campaign, newest first. A
        campaign that your API key cannot submit to returns 404.
      operationId: clips-list
      parameters:
        - in: path
          name: campaign_id
          schema:
            type: string
            description: >-
              Campaign ID. Format: cmp_ followed by 32 lowercase hexadecimal
              characters.
            example: cmp_8a1d4e2f6b7c4d9e8f0a1b2c3d4e5f60
          required: true
          description: >-
            Campaign ID. Format: cmp_ followed by 32 lowercase hexadecimal
            characters.
        - in: query
          name: limit
          schema:
            default: 25
            description: How many items to return, from 1 to 100. The default is 25.
            example: 25
            type: integer
            minimum: 1
            maximum: 100
        - in: query
          name: cursor
          schema:
            type: string
            description: >-
              The `next_cursor` from the previous page. Send it with the same
              filters as that request.
            example: MTc1OTgyMDQwMDAwMC5hYmMuMTIzNDU2Nzg5MGFi
        - in: query
          name: status
          schema:
            type: string
            enum:
              - pending
              - approved
              - rejected
              - not_qualified
              - paid
              - initial_account_verification
              - disconnected
            description: >-
              `pending`: the clip waits for review. `approved`: the clip earns
              from its views. `paid`: a payout was released for the clip, and it
              can still earn. `rejected`: the clip does not earn; see
              `review_note`. `not_qualified`: the clip does not meet the
              campaign rules. `initial_account_verification`: your account must
              be checked before review. `disconnected`: you removed the account
              that posted the clip, so it stopped earning.
            example: pending
        - in: query
          name: platform
          schema:
            type: string
            enum:
              - instagram
              - x
            description: Return only the clips from this platform.
            example: instagram
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          pattern: ^clip_[0-9a-f]{32}$
                          description: Clip ID.
                          example: clip_5b6c7d8e9f0a4b1c8d2e3f4a5b6c7d8e
                        campaign_id:
                          type: string
                          pattern: ^cmp_[0-9a-f]{32}$
                          description: Campaign ID.
                          example: cmp_8a1d4e2f6b7c4d9e8f0a1b2c3d4e5f60
                        account_id:
                          anyOf:
                            - type: string
                              pattern: ^acct_[0-9a-f]{32}$
                              description: Account ID.
                              example: acct_1c2d3e4f5a6b4c7d8e9f0a1b2c3d4e5f
                            - type: 'null'
                          description: >-
                            The account that posted the clip. Null for an old
                            clip with no linked account.
                          example: acct_1c2d3e4f5a6b4c7d8e9f0a1b2c3d4e5f
                        platform:
                          type: string
                          description: >-
                            The platform: `instagram` or `x`. More values can be
                            added. Accept values that you do not know.
                          example: instagram
                        status:
                          type: string
                          enum:
                            - pending
                            - approved
                            - rejected
                            - not_qualified
                            - paid
                            - initial_account_verification
                            - disconnected
                          description: >-
                            `pending`: the clip waits for review. `approved`:
                            the clip earns from its views. `paid`: a payout was
                            released for the clip, and it can still earn.
                            `rejected`: the clip does not earn; see
                            `review_note`. `not_qualified`: the clip does not
                            meet the campaign rules.
                            `initial_account_verification`: your account must be
                            checked before review. `disconnected`: you removed
                            the account that posted the clip, so it stopped
                            earning.
                          example: pending
                        review_note:
                          description: >-
                            Why the clip was rejected, or other notes from the
                            review. Null when there are none.
                          example: null
                          type:
                            - string
                            - 'null'
                        views:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                          description: Views on the clip at the last reading.
                          example: 48200
                        likes:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                          description: Likes on the clip at the last reading.
                          example: 2600
                        comments:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                          description: Comments on the clip at the last reading.
                          example: 140
                        shares:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                          description: Shares of the clip at the last reading.
                          example: 95
                        posted_at:
                          anyOf:
                            - type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                            - type: 'null'
                          description: >-
                            When you published the post. Null if it is not
                            known.
                          example: '2026-09-18T17:05:00.000Z'
                        created_at:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          description: When you submitted the clip.
                          example: '2026-09-18T17:20:00.000Z'
                        post_url:
                          type: string
                          description: The public link to the post.
                          example: https://www.instagram.com/reel/C9xYz12AbCd/
                        thumbnail_url:
                          description: >-
                            A preview image of the clip. Null if there is none.
                            The link can expire.
                          example: >-
                            https://cdn.clipstake.example/thumbnails/C9xYz12AbCd.jpg
                          type:
                            - string
                            - 'null'
                        paid_cents:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                          description: >-
                            The amount paid to you for this clip so far, in
                            cents, after the platform fee. 0 when nothing was
                            paid yet.
                          example: 0
                      required:
                        - id
                        - campaign_id
                        - account_id
                        - platform
                        - status
                        - review_note
                        - views
                        - likes
                        - comments
                        - shares
                        - posted_at
                        - created_at
                        - post_url
                        - thumbnail_url
                        - paid_cents
                      additionalProperties: false
                      description: A clip that you submitted.
                  next_cursor:
                    description: >-
                      Send this as `cursor` to get the next page. It is null on
                      the last page.
                    type:
                      - string
                      - 'null'
                required:
                  - data
                  - next_cursor
                additionalProperties: false
              example:
                data:
                  - id: clip_5b6c7d8e9f0a4b1c8d2e3f4a5b6c7d8e
                    campaign_id: cmp_8a1d4e2f6b7c4d9e8f0a1b2c3d4e5f60
                    account_id: acct_1c2d3e4f5a6b4c7d8e9f0a1b2c3d4e5f
                    platform: instagram
                    status: approved
                    review_note: null
                    views: 48200
                    likes: 2600
                    comments: 140
                    shares: 95
                    posted_at: '2026-09-18T17:05:00.000Z'
                    created_at: '2026-09-18T17:20:00.000Z'
                    post_url: https://www.instagram.com/reel/C9xYz12AbCd/
                    thumbnail_url: https://cdn.clipstake.example/thumbnails/C9xYz12AbCd.jpg
                    paid_cents: 0
                next_cursor: MTc1ODIyMDIwMDAwMC5kZWYuOWE4YjdjNmQ1ZTRm
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
              example:
                error:
                  code: invalid_request
                  message: >-
                    The cursor is not valid for this request. Start again
                    without a cursor, or repeat the previous request with the
                    same filters.
                  request_id: 6f1c2a9e-4b7d-4c1a-9e2f-3a8b5c7d9e10
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
              example:
                error:
                  code: unauthorized
                  message: >-
                    Provide a valid API key as `Authorization: Bearer
                    cc_live_...`.
                  request_id: 0b7e4d2c-9a1f-4e3b-8c6d-5f2a1b9c7e34
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
              example:
                error:
                  code: not_found
                  message: No such campaign.
                  request_id: 3c9a8b7d-2e1f-4a6b-9c8d-7e6f5a4b3c21
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
              example:
                error:
                  code: internal_error
                  message: An unexpected error occurred.
                  request_id: 5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c19
      security:
        - Authorization: []
components:
  schemas:
    error.BAD_REQUEST:
      type: object
      title: Bad request error (400)
      description: The error envelope every failed request returns.
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - invalid_request
              description: A stable, machine-readable error code.
            message:
              type: string
              description: What went wrong, in words a person can act on.
            request_id:
              type: string
              description: The id of this request. Quote it when you contact support.
          required:
            - code
            - message
            - request_id
          additionalProperties: false
      required:
        - error
      additionalProperties: false
    error.UNAUTHORIZED:
      type: object
      title: Unauthorized error (401)
      description: The error envelope every failed request returns.
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - unauthorized
              description: A stable, machine-readable error code.
            message:
              type: string
              description: What went wrong, in words a person can act on.
            request_id:
              type: string
              description: The id of this request. Quote it when you contact support.
          required:
            - code
            - message
            - request_id
          additionalProperties: false
      required:
        - error
      additionalProperties: false
    error.NOT_FOUND:
      type: object
      title: Not found error (404)
      description: The error envelope every failed request returns.
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - not_found
              description: A stable, machine-readable error code.
            message:
              type: string
              description: What went wrong, in words a person can act on.
            request_id:
              type: string
              description: The id of this request. Quote it when you contact support.
          required:
            - code
            - message
            - request_id
          additionalProperties: false
      required:
        - error
      additionalProperties: false
    error.INTERNAL_SERVER_ERROR:
      type: object
      title: Internal server error error (500)
      description: The error envelope every failed request returns.
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - internal_error
              description: A stable, machine-readable error code.
            message:
              type: string
              description: What went wrong, in words a person can act on.
            request_id:
              type: string
              description: The id of this request. Quote it when you contact support.
          required:
            - code
            - message
            - request_id
          additionalProperties: false
      required:
        - error
      additionalProperties: false
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````

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