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

# Poll clipping status

> Sync with the provider and return the latest job state.

Poll while a clipping job is **QUEUED** or **PROCESSING**. This endpoint syncs with the provider before responding.

**`GET /clippings/status/{clippingId}`**

<Note>
  Alias: `GET /clippings/refresh/{clippingId}` behaves the same way.
</Note>

## Path parameter

<ParamField path="clippingId" type="string" required>
  Job id from [Create clipping job](/api-reference/clippings/create).
</ParamField>

## Example

```bash theme={null}
curl "https://mvp.tryunsora.com/api/v1/clippings/status/CLIPPING_ID" \
  -H "Authorization: Bearer uns_live_YOUR_API_KEY"
```

## Errors

| HTTP  | When                  |
| ----- | --------------------- |
| `404` | User or job not found |
| `500` | Provider sync failed  |


## OpenAPI

````yaml GET /clippings/status/{clippingId}
openapi: 3.1.0
info:
  title: Unsora API
  version: 1.2.0
  description: >-
    Public API for Unsora integrations. Authenticate with Clerk JWT or
    uns_live_* API key. API keys are rate-limited to 60 requests/minute and
    support idempotency keys. Async jobs complete via polling GET
    /image/status/{id}.
servers:
  - url: https://mvp.tryunsora.com/api/v1
    description: Versioned API (recommended)
security: []
tags:
  - name: Clippings
  - name: Connect
  - name: Image Generations
  - name: Music Generations
  - name: Influencer Studio
  - name: Posts
  - name: Thumbnails
  - name: User
  - name: Video Generations
paths:
  /clippings/status/{clippingId}:
    get:
      tags:
        - Clippings
      summary: Poll clipping job status
      description: >-
        Syncs with the clipping provider while the job is in progress, then
        returns the job with clips.
      parameters:
        - name: clippingId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Job with clips
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClippingGetResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    ClippingGetResponse:
      type: object
      properties:
        success:
          type: boolean
        data:
          $ref: '#/components/schemas/ClippingJob'
      required:
        - success
        - data
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
        code:
          type: string
        message:
          type: string
      required:
        - error
    ClippingJob:
      type: object
      additionalProperties: true
      properties:
        id:
          type: string
        status:
          type: string
          enum:
            - QUEUED
            - PROCESSING
            - COMPLETED
            - FAILED
        videoUrl:
          type: string
        error:
          anyOf:
            - type: string
            - type: 'null'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        clips:
          type: array
          items:
            $ref: '#/components/schemas/ClippingClip'
        config:
          $ref: '#/components/schemas/ClippingConfig'
        creditsUsed:
          type: integer
      required:
        - id
        - status
    ClippingClip:
      type: object
      additionalProperties: true
      properties:
        id:
          type: string
        order:
          type: integer
          description: Clip index, ranked by virality (0 = highest).
        title:
          type: string
          description: AI-generated clip title.
        startTime:
          type: number
          description: Start offset in the source video, seconds.
        endTime:
          type: number
          description: End offset in the source video, seconds.
        duration:
          type: number
          description: Clip length in seconds.
        status:
          type: string
        outputAsset:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Rendered clip video. Contains the downloadable url once the job
            completes.
        thumbnailAsset:
          type: object
          nullable: true
          additionalProperties: true
          description: Clip thumbnail image.
        metadata:
          type: object
          additionalProperties: true
          description: >-
            Extra AI output: tags, desc (suggested description), score
            (virality).
    ClippingConfig:
      type: object
      description: >-
        Job settings echoed back in resolved form: targetDuration as DURATION_*,
        ratio as RATIO_* (null when keeping the original ratio), captionStyle as
        the underlying template ID.
      properties:
        sourceLang:
          type: string
          nullable: true
        targetLang:
          type: string
          nullable: true
        targetDuration:
          type: string
          enum:
            - DURATION_0_30
            - DURATION_0_90
            - DURATION_30_60
            - DURATION_60_90
            - DURATION_90_180
            - DURATION_180_300
        query:
          type: string
          nullable: true
          description: >-
            Find Moments query the job was created with; null for regular
            viral-clip jobs.
        limit:
          type: integer
          nullable: true
        ratio:
          type: string
          nullable: true
          enum:
            - RATIO_9_16
            - RATIO_1_1
            - RATIO_4_5
            - RATIO_16_9
            - null
        enableCaption:
          type: boolean
        captionStyle:
          type: string
          nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Clerk session JWT or Unsora API key (uns_live_*)

````