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

# Get a clip

> Returns one clip. An ID your agency cannot read gives 404.



## OpenAPI

````yaml /agency-api/openapi.json get /clips/{clip_id}
openapi: 3.1.0
info:
  title: Clipstake Agency API
  description: >-
    Read your agency's brands, campaigns and clips, and create campaigns with an
    API key that has write access.
  version: 0.1.0
servers:
  - url: https://app.clipstake.com/api/v1/agency
security: []
paths:
  /clips/{clip_id}:
    get:
      tags:
        - Clips
      summary: Get a clip
      description: Returns one clip. An ID your agency cannot read gives 404.
      operationId: clips-get
      parameters:
        - in: path
          name: clip_id
          schema:
            type: string
            description: >-
              Clip ID. Format: clip_ followed by 32 lowercase hexadecimal
              characters.
            example: clip_5b6c7d8e9f0a4b1c8d2e3f4a5b6c7d8e
          required: true
          description: >-
            Clip ID. Format: clip_ followed by 32 lowercase hexadecimal
            characters.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                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
                  platform:
                    type: string
                    description: >-
                      The platform of the clip: `instagram`, `x`, `tiktok` or
                      `youtube`. 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. `not_qualified`: the clip does not meet the
                      campaign rules. `initial_account_verification`: the
                      creator's account must be checked before review.
                      `disconnected`: the creator removed the account that
                      posted the clip, so the clip stopped earning.
                    example: approved
                  views:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: >-
                      Every view on the clip, from every country, 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 the creator posted the clip. 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 the creator submitted the clip to the campaign.
                    example: '2026-09-18T18:30:00.000Z'
                  post_url:
                    type: string
                    description: The public link to the clip.
                    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'
                  creator_handle:
                    description: >-
                      The public handle of the account that posted the clip,
                      without the @. Null if it is not known.
                    example: northwind.reels
                    type:
                      - string
                      - 'null'
                  payout_gross_cents:
                    anyOf:
                      - type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      - type: 'null'
                    description: >-
                      The gross amount released for this clip, in cents. This is
                      what left the campaign budget. 0 when nothing was released
                      yet. Null when a payout was released but its gross amount
                      was not recorded.
                    example: 9640
                  estimated_gross_cents:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: >-
                      The gross amount that the next payout release owes this
                      clip, in cents. 0 when the clip cannot earn or owes
                      nothing.
                    example: 1200
                  estimate_source:
                    anyOf:
                      - type: string
                        enum:
                          - snapshot
                          - live
                      - type: 'null'
                    description: >-
                      How `estimated_gross_cents` was calculated. `live`: from
                      the clip's views now. `snapshot`: from the views when the
                      campaign paused. Null when `estimated_gross_cents` is 0.
                    example: live
                required:
                  - id
                  - campaign_id
                  - platform
                  - status
                  - views
                  - likes
                  - comments
                  - shares
                  - posted_at
                  - created_at
                  - post_url
                  - thumbnail_url
                  - creator_handle
                  - payout_gross_cents
                  - estimated_gross_cents
                  - estimate_source
                additionalProperties: false
                description: A clip submitted to a campaign.
              example:
                id: clip_5b6c7d8e9f0a4b1c8d2e3f4a5b6c7d8e
                campaign_id: cmp_8a1d4e2f6b7c4d9e8f0a1b2c3d4e5f60
                platform: instagram
                status: paid
                views: 48200
                likes: 2600
                comments: 140
                shares: 95
                posted_at: '2026-09-18T17:05:00.000Z'
                created_at: '2026-09-18T18:30:00.000Z'
                post_url: https://www.instagram.com/reel/C9xYz12AbCd/
                thumbnail_url: https://cdn.clipstake.example/thumbnails/C9xYz12AbCd.jpg
                creator_handle: northwind.reels
                payout_gross_cents: 9640
                estimated_gross_cents: 1200
                estimate_source: live
        '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
                    ck_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 clip.
                  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.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.