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

# Get mask refinement status

> Poll the status of a mask refinement. When `completed`, the job's mask has been
updated — re-export the job (`POST /v1/jobs/{id}/exports`) to retrieve the result.




## OpenAPI

````yaml /openapi.yaml get /v1/refinements/{refinementId}
openapi: 3.0.3
info:
  title: VideoBGRemover API
  version: 1.6.0
  description: >
    Remove backgrounds from videos using AI-powered processing. 


    The VideoBGRemover API allows you to:

    - Upload videos or provide URLs for processing

    - Remove backgrounds with customizable options

    - Generate transparent videos in multiple formats

    - Compose videos on custom backgrounds (server-side)

    - Track processing status and manage credits


    ## Authentication

    All API requests require authentication using an API key in the `X-Api-Key`
    header.


    ## Credits System

    Background-removal pricing depends on the selected model. At standard frame

    rates, Light and Human use 0.75 credits per second, Original uses 1 credit

    per second, and Pro uses 3 credits per second. Blur uses 1 credit per

    second. Frame-rate and optional processing multipliers may apply; the

    start-job response returns the exact charge.
  contact:
    name: VideoBGRemover API Support
    url: https://videobgremover.com/contact
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.videobgremover.com
    description: Production server
security:
  - ApiKeyAuth: []
tags:
  - name: Jobs
    description: Video processing job management
  - name: Credits
    description: Credit balance and usage
  - name: API
    description: API metadata and documentation
  - name: Webhooks
    description: Webhook delivery and history
paths:
  /v1/refinements/{refinementId}:
    get:
      tags:
        - Jobs
      summary: Get mask refinement status
      description: >
        Poll the status of a mask refinement. When `completed`, the job's mask
        has been

        updated — re-export the job (`POST /v1/jobs/{id}/exports`) to retrieve
        the result.
      operationId: getRefinement
      parameters:
        - name: refinementId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Refinement ID returned by refine-mask
      responses:
        '200':
          description: Refinement status retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  refinement_id:
                    type: string
                    format: uuid
                  job_id:
                    type: string
                    format: uuid
                  status:
                    type: string
                    enum:
                      - pending
                      - queued
                      - processing
                      - completed
                      - failed
                  op:
                    type: string
                  model:
                    type: string
                  prompt_text:
                    type: string
                  version:
                    type: integer
                  error:
                    type: string
                  created_at:
                    type: string
                    format: date-time
                  completed_at:
                    type: string
                    format: date-time
                  message:
                    type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Refinement not found or does not belong to user
          content:
            application/json:
              schema:
                $ref: 9260d07e-02e9-4ce8-8568-ca594463f0aa
        '500':
          $ref: '#/components/responses/InternalError'
components:
  responses:
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
          example:
            error: Invalid API key
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
          example:
            error: Internal server error
  schemas:
    APIError:
      type: object
      properties:
        error:
          type: string
          description: Error message
        details:
          type: string
          description: Additional error details
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: API key with format `vbr_` followed by 32 characters

````

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